编写镶木地板时出现NullPointerException

时间:2017-10-23 21:24:24

标签: scala apache-spark parquet

我正在尝试测量在亚马逊s3中读取和编写镶木地板文件需要多长时间(在特定分区下) 为此,我编写了一个简单读取文件的脚本,然后将其写回:

val df = sqlContext.read.parquet(path + "p1.parquet/partitionBy=partition1")
df.write.mode("overwrite").parquet(path + "p1.parquet/partitionBy=partition1")

但是我得到一个空指针异常。我尝试在其间添加df.count,但得到了同样的错误。

1 个答案:

答案 0 :(得分:0)

错误的原因是Spark仅在使用时读取数据。这导致Spark在尝试覆盖文件的同时从文件读取数据。这会导致问题,因为在阅读时无法覆盖数据。

我建议保存到临时位置,因为这是为了计时目的。另一种方法是在读取时对数据使用.cache(),执行强制读取的操作(以及实际缓存数据),然后覆盖文件。