我想从s3资源创建apachesparkDataframe。我在aws和ibms3clout对象存储上进行了尝试,都失败了
org.apache.spark.util.TaskCompletionListenerException: Premature end of Content-Length delimited message body (expected: 2,250,236; received: 16,360)
我和你一起跑Pypark
./pyspark --packages com.amazonaws:aws-java-sdk-pom:1.11.828,org.apache.hadoop:hadoop-aws:2.7.0
我正在为ibm设置s3配置
sc._jsc.hadoopConfiguration().set("fs.s3a.access.key", "xx")
sc._jsc.hadoopConfiguration().set("fs.s3a.secret.key", "xx")
sc._jsc.hadoopConfiguration().set("fs.s3a.endpoint", "s3.eu-de.cloud-object-storage.appdomain.cloud")
或aws
sc._jsc.hadoopConfiguration().set("fs.s3a.access.key", "xx")
sc._jsc.hadoopConfiguration().set("fs.s3a.secret.key", " xx ")
sc._jsc.hadoopConfiguration().set("fs.s3a.endpoint", "s3.us-west-2.amazonaws.com")
在这两种情况下,都使用以下代码:df=spark.read.csv(“s3a://drill test/cases.csv”)
它失败了,只有一个例外
org.apache.spark.util.TaskCompletionListenerException: Premature end of Content-Length delimited message body (expected: 2,250,236; received: 16,360)
3条答案
按热度按时间htzpubme1#
这可能让你很困惑。
错误如下:
s3是否告诉您与s3的通信有错误。我猜您使用的是旧版本的spark,它不知道异常是什么,它试图将文件作为xml错误消息带回。
请参阅下面的更新,这些更新应该有助于您的情况,将它们放在您的阅读电话上方,并填写
<aws_key>
,<aws_secret>
,和<aws_region>
:祝你好运!
kmb7vmvb2#
首先,你应该看看例外情况,它不提供信息
https://spark.apache.org/docs/1.2.2/api/java/org/apache/spark/util/taskcompletionlistenerexception.html
我能想到的一个例子是来自s3和ibmcloud的用户权限错误。您访问的是s3上的公共链接,还是私有链接(如果是)。你应该深入挖掘链接权限。
ukxgm1gy3#
花了好几天的时间想弄明白。。我有openjdk版本“1.8.0\u265”,当我试图读取ibms3cos时,它给了我一个确切的错误。把我的java版本改成了openjdk版本“1.8.0Đ272”,它成功了。