Создайте DataFrame, используя искру из файла Excel, который находится в пути к серверу - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь загрузить файл xls / xlsx с сервера

с этим кодом https://github.com/crealytics/spark-excel

SparkConf sparkConf = new SparkConf();
SparkContext sparkContext = null;

sparkContext = new SparkContext("local", "234", sparkConf);
SparkSession sparkSession = 
SparkSession.builder().sparkContext(sparkContext).getOrCreate();

SQLContext sqlContext = sparkSession.sqlContext().newSession();
Dataset<Row> dframe = sqlContext.read().format("com.crealytics.spark.excel").option("timestampFormat", "yyyy-mmm-dd HH:mm:ss").option("dataAddress", "'My Sheet'!A1").option("useHeader", "true").option("treatEmptyValuesAsNulls", "false").option("inferSchema", "true")
            .load("/home/test/myfile/sample.xlsx"); // local path

Этот код отлично работает с локальным файлом

"/home/test/myfile/sample.xlsx"

Как я могу читать файлы на сервере с таким путем

"http://10.0.0.1:8080/serverFiles/test.xlsx"

Я пытаюсь заменить код на URL сервера выше и получил эту ошибку:

 Exception in thread "main" java.io.IOException: No FileSystem for scheme: http
    at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2586)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2593)

Может ли спарк прочитать файл xlsx / xls непосредственно с URL-адреса сервера? [не для CSV]

1 Ответ

0 голосов
/ 17 января 2019

Вы не можете напрямую использовать HTTP пути в контексте Spark.

См. Этот SO-вопрос

...