java - 使用 Spark 从服务器路径中的 Excel 文件创建 DataFrame

标签 java apache-spark apache-spark-sql

我正在尝试从服务器加载 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)

spark 可以直接从服务器 URL 读取 xlsx/xls 文件吗? [不适用于 CSV]

最佳答案

您不能直接在 Spark 上下文中使用 HTTP 路径。

引用这个SO-question

关于java - 使用 Spark 从服务器路径中的 Excel 文件创建 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54235119/

相关文章:

java.io.StreamCorruptedException : invalid type code: 4C - replicationstream tomcat

java - 从另一个类调用对象数组列表并迭代它

java + Spark : org. apache.spark.SparkException : Job aborted: Task not serializable: java. io.NotSerializableException

apache-spark - 与RDD相比,DataSet的性能优势

apache-spark - 如何为 Spark 应用程序读取和写入 HDFS 字节?

scala - 如何读取多个 Parquet 表?

java - 为什么不能使用复合赋值将多个变量设置为 null?

java - JPanel 表单扩展以填充 JScrollpane - 违背了目的

java - 如何使用Spark java从mariadb读取数据

sql - Spark DataFrame中IFNULL和IFF的等效SQL函数