【发布时间】:2017-09-28 08:08:08
【问题描述】:
我正在使用 pyspark 从 Amazon S3 上的 parquet 文件中读取数据帧,例如
dataS3 = sql.read.parquet("s3a://" + s3_bucket_in)
这没有问题。但后来我尝试写数据
dataS3.write.parquet("s3a://" + s3_bucket_out)
我确实得到了以下异常
py4j.protocol.Py4JJavaError: An error occurred while calling o39.parquet.
: java.lang.IllegalArgumentException: java.net.URISyntaxException:
Relative path in absolute URI: s3a://<s3_bucket_out>_temporary
在我看来,Spark 正在尝试先创建一个 _temporary 文件夹,然后再写入给定的存储桶。可以以某种方式防止这种情况,以便 spark 直接写入给定的输出存储桶吗?
【问题讨论】:
-
我已经在此处发布了解决此问题的方法(如果您正在使用 EMR)stackoverflow.com/a/54350777/1931239
标签: hadoop apache-spark amazon-s3 pyspark