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