df.show () печатает пустой результат, в то время как в hdfs он не пустой - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть приложение pyspark, которое отправляется на пряжу с несколькими узлами, а также читает паркет из hdfs

в моем коде, у меня есть фрейм данных, который читается непосредственно из hdfs:

df = self.spark.read.schema(self.schema).parquet("hdfs://path/to/file")

когда я использую df.show(n=2) непосредственно в своем коде после кода выше, он выводит:

+---------+--------------+-------+----+
|aaaaaaaaa|bbbbbbbbbbbbbb|ccccccc|dddd|
+---------+--------------+-------+----+
+---------+--------------+-------+----+

Но когда я вручную go на путь hdfs, данные не пусты.

Что я пробовал?

1 - сначала я подумал, что мог использовать несколько ядер и память для моего исполнителя и драйвера, поэтому я удвоил их и ничего изменился.

2- тогда я подумал, что путь может быть неправильным, поэтому я дал ему неправильный путь hdfs, и он выдал ошибку, что этот путь не существует

Что я предполагая?

1- я думаю, что это может иметь какое-то отношение к драйверам и исполнителям

2 - может, я имею какое-то отношение к пряже

3- конфиги, предоставляемые при использовании spark-submit

текущая конфигурация:

spark-submit \
    --master yarn \
    --queue my_queue_name \
    --deploy-mode cluster \
    --jars some_jars \
    --conf spark.yarn.dist.files some_files \
    --conf spark.sql.catalogImplementation=in-memory \
    --properties-file some_zip_file \
    --py-files some_py_files \
    main.py

Что я уверен

данные не пусты. тот же путь hdfs предоставляется в другом проекте, который работает нормально.

1 Ответ

1 голос
/ 08 марта 2020

Таким образом, проблема была с файлами jar, которые я предоставлял

У версии oop была 2.7.2, и я изменил ее на 3.2.0, и она отлично работает

...