代码之家  ›  专栏  ›  技术社区  ›  Roushan

向pyspark数据帧添加新行

  •  0
  • Roushan  · 技术社区  · 8 年前

    我是新来的小精灵,但对熊猫很熟悉。 我有一个pyspark数据框

    # instantiate Spark
    spark = SparkSession.builder.getOrCreate()
    
    # make some test data
    columns = ['id', 'dogs', 'cats']
    vals = [
         (1, 2, 0),
         (2, 0, 1)
    ]
    
    # create DataFrame
    df = spark.createDataFrame(vals, columns)
    

    希望添加新行(4,5,7),以便输出:

    df.show()
    +---+----+----+
    | id|dogs|cats|
    +---+----+----+
    |  1|   2|   0|
    |  2|   0|   1|
    |  4|   5|   7|
    +---+----+----+
    
    2 回复  |  直到 8 年前
        1
  •  7
  •   Justin C.    6 年前

    作为 thebluephantom 已经说过工会是我们的出路。我只是回答你的问题给你一个pyspark的例子:

    columns = ['id', 'dogs', 'cats']
    vals = [(1, 2, 0), (2, 0, 1)]
    
    df = spark.createDataFrame(vals, columns)
    
    newRow = spark.createDataFrame([(4,5,7)], columns)
    appended = df.union(newRow)
    appended.show()
    

    请查看数据块常见问题解答: https://kb.databricks.com/data/append-a-row-to-rdd-or-dataframe.html

        2
  •  0
  •   Ged    8 年前

    从我做的事情,用 联盟 ,显示块部分编码-您当然需要适应自己的情况:

    val dummySchema = StructType(
    StructField("phrase", StringType, true) :: Nil)
    var dfPostsNGrams2 = spark.createDataFrame(sc.emptyRDD[Row], dummySchema)
    for (i <- i_grams_Cols) {
        val nameCol = col({i})
        dfPostsNGrams2 = dfPostsNGrams2.union(dfPostsNGrams.select(explode({nameCol}).as("phrase")).toDF )
     }
    

    DF与自身的结合是前进的方向。

    推荐文章