如何在 Spark 的空 Dataframe 中添加行记录

Posted

技术标签:

【中文标题】如何在 Spark 的空 Dataframe 中添加行记录【英文标题】:How to add a row record in empty Dataframe in Spark 【发布时间】:2021-03-12 19:39:57 【问题描述】:

我正在尝试在 Spark scala 中创建一个空的 dataFrame,并希望创建自己的架构并将记录加载到其中。

下面是例子

val emptyDf = spark.emptyDataFrame

val loadEmptyDf = emptyDf.withColumn("col1", lit("yes"), "col2", lit("no"))

但我无法获得我在创建架构时放置的默认值

电流输出:

|col1|col2|
|    |    |

预期输出:

|col1|col2|
|yes | no |

【问题讨论】:

【参考方案1】:

withColumn 添加一列,lit 为所有行添加默认值,但您的 DataFrame 为空..

val data = Seq(Row("yes", "no"))

val schema: StructType = new StructType()
  .add("col1", StringType)
  .add("col2", StringType)

val df = spark.createDataFrame(spark.sparkContext.parallelize(data), schema)

df.show()

+----+----+
|col1|col2|
+----+----+
| yes|  no|
+----+----+

【讨论】:

以上是关于如何在 Spark 的空 Dataframe 中添加行记录的主要内容,如果未能解决你的问题,请参考以下文章

在Spark Dataframe中的列列表中添加一列rowums

spark dataframe 和 scala Map互相转换

如何优化 spark 函数以用零替换空值?

在 spark 数据框中创建 StructType 的空列

如何创建具有指定架构的空 DataFrame?

如何创建具有指定架构的空 DataFrame?