Импортировать модель xgboost в скрипт pyspark напрямую из HDFS - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь загрузить модель xgboost в формате .dat в скрипт pyspark напрямую из HDFS.

Я пытался использовать SparkContext.addFile().Но это не работает для меня.Код:

model = sc.addFile("hdfs://namenode:8088/home/jup-user/testdb/scripts/titanic_pickle.dat")
print(type(model))

Traceback (последний вызов был последним): файл "/home/jup-user/testdb/scripts/loadhdfs.py", строка 63, в модели = sc.addFile ("hdfs: // namenode: 8088 / home / jup-user / testdb / scripts / titanic_pickle.dat") Файл "/data_disk/opt/cloudera/parcels/CDH-5.15.1-1.cdh5.15.1.p0.4/lib/spark/python/lib/pyspark.zip/pyspark/context.py ", строка 787, в файле addFile" /data_disk/opt/cloudera/parcels/CDH-5.15.1-1.cdh5.15.1.p0.4 / lib / spark / python / lib / py4j-0.10.7-src.zip / py4j / java_gateway.py ", строка 1257, в вызов файл" / data_disk / opt / cloudera / parcels / CDH-5.15.1-1.cdh5.15.1.p0.4 / lib / spark / python / lib / pyspark.zip / pyspark / sql / utils.py ", строка 45, в файле deco" / data_disk / opt / cloudera /parcels / CDH-5.15.1-1.cdh5.15.1.p0.4 / lib / spark / python / lib / py4j-0.10.7-src.zip / py4j / protocol.py ", строка 328, в get_return_value py4j.protocol.Py4JJavaError: Произошла ошибка при вызове o51.addFile.

Но если я загружаю текстовый файл из HDFS, используя SparkContext.textFile(), он работает:

textfile1 = sc.textFile("hdfs://namenode:8088/home/jup-user/testdb/scripts/data/clean_test.csv")
print(type(textfile1))

class 'pyspark.rdd.RDD'

Я пытался использовать SparkFiles и PyFiles, но spark-submit не может понять путь HDFS (hdfs: //).Pickle также не может понять путь HDFS

Я буду рад увидеть все ваши предложения по импорту моделей xgboost (или файлов любых форматов) в скрипт pyspark.

BR, Vladimir

...