Я пытаюсь загрузить модель 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