我正在尝试从服务器加载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"
我用替换代码 上面的服务器网址出现此错误:
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)
可以直接从服务器URL读取 xlsx / xls 文件吗? [不适用于CSV]
答案 0 :(得分:0)
您不能在Spark上下文中直接使用 [{'attributeName': 'File Discount',
'attributeType': 'int',
'attributeValue': '15'},
{'attributeName': 'Returns',
'attributeType': 'text',
'attributeValue': 'Full SOR on all'}]
路径。
请参阅此SO-question