Spark: распараллелить URL-адреса hdfs с очевидностью локальности данных - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть список URL-адресов ZIP-файлов HDFS, и я хочу открыть каждый файл внутри функции карты RDD вместо использования функции binaryFiles.

Изначально я попытался выполнить следующее:

def unzip(hdfs_url):
  # read the hdfs file using hdfs python client

rdd = spark.sparkContext.parallelize(list_of_hdfs_urls, 16) # make 16 partitions
rdd.map(lambda a: unzip(a)) 

Но позже я понял, что это не обеспечит локальность данных, даже если они будут проходить параллельно по кластеру.

Есть ли способ запустить функцию map для файла url x на узле, гдеhdfs файл x находится, как заставить spark знать об этом месте.

Я хочу читать zip файлы таким образом, чтобы повысить производительность в pyspark, и, следовательно, я могу избежать сериализации и десериализации файловмежду питоном и процессом Java на каждом исполнителе.

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