Ошибка чтения искры из-за дублирования столбца - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь прочитать файл паркета из S3 в блоках данных, используя scala. ниже приведен простой код чтения

val df = spark.read.parquet(s"/mnt/$MountName/tstamp=2020_03_25")
display(df)

MountName - это dbfs, куда данные монтируются из S3. Но я получаю сообщение об ошибке из-за дублирования ключа в файле.

SparkException: Job aborted due to stage failure: Task 0 in stage 813.0 failed 4 times, most recent failure: Lost task 0.3 in stage 813.0 (TID 79285, 10.179.245.218, executor 0): com.databricks.sql.io.FileReadException: Error while reading file dbfs:/mnt/Alibaba_data/tstamp=2020_03_25/ts-1585154320710.parquet.gz. 

Caused by: java.lang.RuntimeException: Found duplicate field(s) "subtype": [subtype, subType] in case-insensitive mode

Теперь мне нужно ее преодолеть. Может быть, сделать чтение чувствительным к регистру или опустить столбец во время чтения, или любым другим способом, если это будет предложено.

Предложите, пожалуйста.

1 Ответ

3 голосов
/ 13 апреля 2020

Попробуйте с включенной чувствительностью к регистру. spark.sql.caseSensitive должно быть установлено на true.

...