我认为我必须在这里遗漏一些明显的东西,但是我在编写和阅读Spark2.2 DataFrames
到镶木地板文件时遇到了麻烦。我正在尝试做一些简单的数据处理,我加载一个csv文件,核了几个列值,然后保存结果。然而,spark不断写出空的镶木地板文件而不是我的数据。
/* SparkApp running in loca[*] mode */
val data = spark.read
.option("header", "false")
.option("inferSchema", false)
.option("mode", "DROPMALFORMED")
.option("delimiter", "|")
.schema(My.schema)
.csv("/path/to/my/data.csv")
data.count
//res: Long=100000
val parquetPath = "/path/to/data.parquet"
data.write.mode("overwrite").parquet(parquetPath)
val newData = spark.read.parquet(parquetPath)
/* newData will have the same (correct) schema as data, but: */
newData.count
//res: Long=0
我可以从生成的文件大小中看到镶木地板文件没有保存到附带的数据,所以我认为我对DataFrameWriter
做错了,但我不确定是什么。在写作之前我是否必须收集或具体化数据?
更新
看起来与此older question类似的问题。