编写镶木地板时出现 NullPointerException
NullPointerException when writing parquet
我正在尝试测量在 Amazon s3(特定分区下)中读取和写入 parquet 文件需要多长时间
为此,我编写了一个简单地读取文件而不是将它们写回的脚本:
val df = sqlContext.read.parquet(path + "p1.parquet/partitionBy=partition1")
df.write.mode("overwrite").parquet(path + "p1.parquet/partitionBy=partition1")
但是我得到一个空指针异常。我试图在两者之间添加 df.count
,但得到了同样的错误。
报错的原因是Spark只在要用到数据的时候才读取数据。这会导致 Spark 在尝试覆盖文件的同时从文件中读取数据。这会导致一个问题,因为读取时无法覆盖数据。
我建议保存到一个临时位置,因为这是为了计时。另一种方法是在读取数据时对数据使用 .cache()
,执行强制读取操作(以及实际缓存数据),然后覆盖文件。
我正在尝试测量在 Amazon s3(特定分区下)中读取和写入 parquet 文件需要多长时间 为此,我编写了一个简单地读取文件而不是将它们写回的脚本:
val df = sqlContext.read.parquet(path + "p1.parquet/partitionBy=partition1")
df.write.mode("overwrite").parquet(path + "p1.parquet/partitionBy=partition1")
但是我得到一个空指针异常。我试图在两者之间添加 df.count
,但得到了同样的错误。
报错的原因是Spark只在要用到数据的时候才读取数据。这会导致 Spark 在尝试覆盖文件的同时从文件中读取数据。这会导致一个问题,因为读取时无法覆盖数据。
我建议保存到一个临时位置,因为这是为了计时。另一种方法是在读取数据时对数据使用 .cache()
,执行强制读取操作(以及实际缓存数据),然后覆盖文件。