Ошибка при записи CSV-файла в корзину S3 с использованием pyspark - PullRequest
0 голосов
/ 24 апреля 2020

Я использую pyspark версии 2.4.5 и boto3 для доступа к AWS сервисам. Создать SparkSession

spark = SparkSession\
.builder\
.config("spark.jars.packages", "org.apache.hadoop:hadoop-aws:2.7.5") \
.master("local")\
.appName("MyApp")\
.config("spark.hadoop.fs.s3a.access.key", credentials.access_key)\
.config("spark.hadoop.fs.s3a.secret.key", credentials.secret_key)\
.getOrCreate()
  • Датафрейм содержит записи (также для проверки я попытался написать только столбец)
  • Пользователь IAM имеет учетные данные S3FullAccess

При записи фрейма данных в корзину S3 произошла ошибка

output_path = "s3a://bucket_name/sample.csv"
df.write.mode("overwrite").option("header", "true").csv(output_path)

Ошибка

---------------- -------------------------------------------------- --------- Py4JJavaError Traceback (последний последний вызов) в 1 output_path = "s3a: // udacity-project-datalake-boobooka / sample" ----> 2 df.write.mode ("overwrite ") .option (" header "," true "). csv (output_path)

c: \ python \ lib \ site-packages \ pyspark \ sql \ readwriter.py в csv (self, path , режим, сжатие, сепия, кавычка, escape, заголовок, nullValue, escapeQuotes, quoteAll, dateFormat, timestampFormat, ignoreLeadingWhiteSpace, ignoreTrailingWhiteSpace, charToEscapeQuoteEscaping, encoding, emptyValue) 930 charToEscapeQuoteEscapingueo 932 self._jwrite.cs v (путь) 933 934 @since (1.5)

c: \ python \ lib \ site-packages \ py4j \ java_gateway.py в вызов (self, * args) 1255 answer = self.gateway_client.send_command (команда) 1256 return_value = get_return_value (-> 1257 ответ, self.gateway_client, self.target_id, self.name) 1258 1259 для temp_arg в temp_args:

c: \ python \ lib \ site-packages \ pyspark \ sql \ utils.py in deco (* a, ** kw) 61 def deco (* a, ** kw): 62 try: ---> 63 return f (* a , ** kw) 64 кроме py4j.protocol.Py4JJavaError как e: 65 s = e.java_exception.toString ()

c: \ python \ lib \ site-packages \ py4j \ protocol.py в get_return_value (answer, gateway_client, target_id, name) 326 поднять Py4JJavaError (327 "Произошла ошибка при вызове {0} {1} {2}. \ n". -> 328 формат (target_id, ".", Name), значение) 329 else: 330 повысить Py4JError (

Py4JJavaError: Произошла ошибка при вызове o108.csv.: Org. apache .spark. SparkException: задание прервано datasources.InsertIntoHadoopFsRelationCommand.run (InsertIntoHadoopFsRelationCommand. scala: 159)

и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...