Чтение плохих имен gzipped json-файлов для разжигания датафрейма - PullRequest
0 голосов
/ 28 мая 2019

Я перевожу искровую работу в Amazon EMR и хочу прочитать сжатые файлы json из S3 в искровом фрейме данных.Эти файлы имеют размер около 4 ТБ.

Проблема в том, что структура имен этих файлов в S3 неверна, формат имени: name:gz:name-ID:DD-MM-YY@timestamp

Я загрузил небольшой файл из S3 на свойлокальный компьютер и попытался прочитать файл в спарк с помощью следующей команды:

df = spark.read.option('compression', 'gzip').json('s3file')

, но я получаю сообщение об ошибке после вызова df.show() (Проверка трассировки в конце)

Однако я могу прочитать этот файл после переименования в s3file.gz.Я не могу изменить структуру имен этих файлов на S3, так как они генерируются другим процессом.Копирование этих данных и переименование их в другой каталог стоит дорого, и я стараюсь не делать этого.Я попытался передать схему вышеупомянутой команде, но это тоже не сработало.С нетерпением ждем некоторых предложений о том, как прочитать эти плохо названные файлы json с S3 на искровом фрейме данных.Спасибо

  File "/usr/hdp/current/spark2-client/python/pyspark/sql/utils.py", line 63, in deco
    return f(*a, **kw)
  File "/usr/hdp/current/spark2-client/python/lib/py4j-0.10.7-src.zip/py4j/protocol.py", line 328, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling o114.showString.
: org.apache.spark.sql.AnalysisException: Since Spark 2.3, the queries from raw JSON/CSV files are disallowed when the
referenced columns only include the internal corrupt record column
(named _corrupt_record by default)```
...