假设这是一个Dataframe:
val data = Seq(
Row("Ramesh",List("English","German"),Map("hair"->"black","eye"->"brown")),
Row("Vijay",List("Spark","French",null),Map("hair"->"brown","eye"->null)),
Row("Yann",List("Mandrin",""),Map("hair"->"red","eye"->"")),
Row("Ram",null,null),
Row("Jefferson",List(),Map())
)
val schema = new StructType()
.add("name",StringType)
.add("languages", ArrayType(StringType))
.add("properties", MapType(StringType,StringType))
val df = spark.createDataFrame(spark.sparkContext.parallelize(data), schema)
输出:
+----------+--------------+
|name |languages |
+----------+--------------+
我要所有的输出都带有原子值。null也应该被覆盖。
1条答案
按热度按时间q5lcpyga1#
使用
explode_outer
从org.apache.spark.sql.functions
. 这将使Dataframe中的集合变平。outer命令考虑空值。