Я пытаюсь прочитать паркетный файл с S3 и продолжаю получать ошибки.Нет проблем при записи файла паркета на S3, и при попытке записи и чтения с локального компьютера он работает отлично.Ошибки возникают только при попытке прочитать паркет из S3.
перепробовал несколько конфигов и получил разные ошибки.1-я конфигурация:
spark.conf.set('fs.s3.awsAccessKeyId', '%%myAcsessId%%')
spark.conf.set('fs.s3.awsSecretAccessKey', '%%mySecretKey%%')
spark.conf.set('fs.s3.impl', 'org.apache.hadoop.fs.s3native.NativeS3FileSystem')
additional JARs for s3 read-write:
>hadoop-aws-2.7.3.jar,
>aws-java-sdk-s3-1.11.156.jar
при использовании команды spark.read.parquet('s3://path/to/parquet_folder')
процесс выглядит нормально, но фактический файл, который я получил от S3, поврежден , и его использование убивает блокнот zeppelin (необходимо перезагрузить).после рассмотрения всех связанных с этим проблем, которые я обнаружил в Интернете, некоторые решения предлагали использовать s3a вместо s3 , поэтому я использовал следующую конфигурацию:
spark.conf.set('fs.s3a.access.key', '%%myAcsessId%%')
spark.conf.set('fs.s3a.secret.key', '%%mySecretKey%%')
spark.conf.set('fs.s3a.impl', 'org.apache.hadoop.fs.s3a.S3AFileSystem')
дополнительные JAR-файлы для чтения / записи s3:
hadoop-aws-3.2.1.jar,
**hadoop-common-3.2.1.jar**,
aws-java-sdk-s3-1.11.156.jar
и возникла следующая ошибка:
java.lang.NullPointerException
at org.apache.thrift.transport.TSocket.open(TSocket.java:170)
, поэтому я удалил hadoop-common-3.2.1.jar файл и теперь, когда я пытаюсь прочитать, используя команду spark.read.parquet('s3a://path/to/parquet_folder')
, я получаю:
Py4JJavaError: An error occurred while calling o98.parquet.
: java.lang.NoClassDefFoundError: org/apache/hadoop/fs/StreamCapabilities
Я также получил много других ошибок в процессе, и результаты, которые я получаю для последней ошибки: в этой ветке github , но я все еще не могу решить мою проблему.
Спасибо - Мош.