当前位置: 首页 > 知识库问答 >
问题:

Spark无法读取CSV文件并转换为数据集

富锦
2023-03-14
Exception in thread "main" org.apache.spark.sql.AnalysisException: cannot resolve '`itemType`' given input columns: [Order ID, Total Profit, Country, Total Revenue, Ship Date, Unit Cost, Sales Channel, Unit Price, Total Cost, Units Sold, Order Date, Order Priority, Region, Item Type];
at org.apache.spark.sql.catalyst.analysis.package$AnalysisErrorAt.failAnalysis(package.scala:42)
at org.apache.spark.sql.catalyst.analysis.CheckAnalysis$$anonfun$$nestedInanonfun$checkAnalysis$1$2.applyOrElse(CheckAnalysis.scala:110)
at org.apache.spark.sql.catalyst.analysis.CheckAnalysis$$anonfun$$nestedInanonfun$checkAnalysis$1$2.applyOrElse(CheckAnalysis.scala:107)
at org.apache.spark.sql.catalyst.trees.TreeNode.$anonfun$transformUp$2(TreeNode.scala:278)
...
...
import spark.implicits._
case class Sales(region: String, 
              country: String, 
              itemType: String, 
              salesChannel: String, 
              orderPriority: String, 
              orderDate: String, 
              orderId: Long, 
              shipDate: String, 
              unitsSold: Integer, 
              unitsPrice: Double,
              unitCost: Double,
              totalRevenue: Double, 
              totalCost: Double, 
              totalProfit: Double
              )
 val ds = spark.read 
.option("header", "true")
.option("inferSchema", "true")
.csv("src/main/resources/datasets/10000 Sales Records.csv")
.as[Sales] 

共有1个答案

段干恺
2023-03-14

可能在输入文件中包含标题-地区、国家、项目类型、销售渠道、订单优先级、订单日期、订单ID、发货日期、售出单位、单价、单位成本、总收入、总成本、总利润

在输入文件或case类中编辑标头

名称:项类型(带空格),其中如in case类不带空格

 类似资料:
  • 我得到了一个CSV文件和一个头文件,它必须通过Spark(2.0.0和Scala2.11.8)作为数据frame读取。 是否有任何方法可以使用spark代码仅从CSV头中转义特殊字符?

  • 我从来没有真正理解编码和解码在python中是如何工作的,我习惯于经常遇到这类问题。我必须读取一个json文件并将其某些值与其他数据进行比较。 在其中一个文件中,我有字符串,它应该成为。我正在这样读取文件: 然而,该字符串被读取为unicode,并表示为 我如何做到这一点,以及如何在python中使用编解码器的正确方法?

  • 我用node.js生成一个utf-8编码的csv,然后在windows上双击打开它。Excel会启动,但某些特殊字符(如`、`、ü、ä、ö、ü...)无法正确显示。我想这是由于错误的编码。我保存了一个用Excel创建的新csv。我看到编码是Windows-1252。

  • 我的数据位于azure cosmos数据库中,我已经将数据集挂载到azure Databricks上。 我可以使用pandas读取csv文件,并将其加载到spark DataFrame中。

  • 我正在尝试从com包中的CSV文件中读取值。实例但当我使用以下语法运行代码时: 上面写着: java.io.FileNotFoundException: Dataset.csv 我也尝试过使用: 仍然不工作。任何帮助都会很有帮助。谢谢

  • 我目前正在使用Apache Zeppelin 0.8。我尝试加载如下csv文件: 我也尝试过这个: 但是,它无法打印出以下内容: 组织。阿帕奇。火花SparkException:作业因阶段失败而中止:阶段2.0中的任务0失败1次,最近的失败:阶段2.0中的任务0.0丢失(TID 2,localhost,executor driver):java。lang.NoSuchMethodError:org