【问题标题】:How to read an .xls file from AWS S3 using spark in java? And unable to read sheetName如何在 java 中使用 spark 从 AWS S3 读取 .xls 文件?并且无法读取 sheetName
【发布时间】:2019-05-22 07:43:28
【问题描述】:

我正在尝试从 AWS S3 读取 .xls 文件,但收到 java.io.FileNotFoundException 异常。

我尝试了以下两种方法。一种方法是在 option() 中提供带有关键位置的路径,另一种方法是在 load() 中添加相同的路径。

Dataset<Row> segmentConfigData = spark.read()
                .format("com.crealytics.spark.excel")
                .option("sheetName", "sheet1")
                .option("header","true")
                .option("location","s3a://input/552SegmentConfig.xls")
                .option("useHeader", "true")
                .option("treatEmptyValuesAsNulls", "true")
                .option("inferSchema", "true")
                .option("addColorColumns", "False")
                .load();

Dataset<Row> segmentConfigData = spark.read()
                .format("com.crealytics.spark.excel")
                .option("sheetName", "sheet1")
                .option("header","true")
                .option("location","s3a://input/552SegmentConfig.xls")
                .option("useHeader", "true")
                .option("treatEmptyValuesAsNulls", "true")
                .option("inferSchema", "true")
                .option("addColorColumns", "False")
                .load("s3a://input/552SegmentConfig.xls");

我得到文件未找到异常。同样,当我读取 .csv 文件时,我能够读取该文件。

编辑-我已经解决了这个问题。我使用的是旧版本的“com.crealytics.spark.excel”。一旦我取消了罐子的等级,我就可以准备好了。

但现在我面临另一个问题。除了第一张纸之外,我无法阅读任何其他纸。有什么帮助吗?

【问题讨论】:

    标签: java amazon-s3 apache-spark-sql dataset


    【解决方案1】:

    我已经解决了这个问题。我使用的是旧版本的“com.crealytics.spark.excel”。一旦我取消了罐子的等级,我就可以准备好了。

    此外,我刚刚能够读取 (.xls) 文件的第一页。下面是代码sn-p:

    spark.read()
        .format("com.crealytics.spark.excel")
        .option("location",path)
        .option("sheetName", sheetName)
        .option("dataAddress", "'"+sheetName+"'!A1")
        .option("header","true")
        .option("useHeader", "true")
        .option("treatEmptyValuesAsNulls", "true")
        .option("inferSchema", "true")
        .option("addColorColumns", "False")
        .load(path);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-18
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      • 2017-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多