1
我想將Dataframe的空字段寫爲空,但始終寫爲NULL
。我想寫NULLS爲?
,並且爲空/空白。同時閱讀csv。Spark CSV讀取/寫入空字段
val df = sqlContext.createDataFrame(Seq(
(0, "a"),
(1, "b"),
(2, "c"),
(3, ""),
(4, null)
))
scala> df.show
| 0| a|
| 1| b|
| 2| c|
| 3| |
| 4|null|
+---+----+
df.write.mode(SaveMode.Overwrite).format("com.databricks.spark.csv").option("nullValue","?").save("/xxxxx/test_out")
written output :
0,a
1,b
2,c
3,?
4,?
.option("treatEmptyValuesAsNulls" , "false")
此選項不起作用。
我需要的空寫爲空
0,a
1,b
2,c
3,
4,?
這裏所有列要求這種情況下條件(i有130列),再而寫的空字段將被視爲通過CSV空寫,我們就需要用到。選項(「NullValue屬性」,「」)把它寫成空的。這可能是一種解決方法,謝謝。 – satish
如果你有更多的字段,然後使用'map'轉換並迭代循環中的每個字段,然後使用UDF應用'case語句'。我測試了這個,空字段寫成空白不爲空。 –
好的,謝謝。 – satish