【发布时间】:2018-02-14 19:10:38
【问题描述】:
我有一个 CSV 文件以及一个必须通过 Spark(2.0.0 和 Scala 2.11.8)作为数据帧读取的标头。
示例 csv 数据:
Item,No. of items,Place
abc,5,xxx
def,6,yyy
ghi,7,zzz
.........
当我尝试在 spark 中读取此 csv 数据作为数据帧时遇到问题,因为标题包含具有特殊字符“。”的列(项目数)
我尝试读取 csv 数据的代码是:
val spark = SparkSession.builder().appName("SparkExample")
import spark.implicits._
val df = spark.read.option("header", "true").csv("file:///INPUT_FILENAME")
我面临的错误:
Exception in thread "main" org.apache.spark.sql.AnalysisException: Unable to resolve No. of items given [Item,No. of items,Place];
如果我从标题中删除".",我不会收到任何错误。甚至尝试转义字符,但它甚至从数据中转义了所有"." 字符。
有什么方法可以使用 spark 代码仅从 CSV 标头中转义特殊字符 "."?
【问题讨论】:
-
我用 Spark 2.2 尝试了这个代码
spark.read.format("csv").option("header", "true").load(input).show()。显示正常。 -
我在我的 spark 2.0.0 中尝试了你给定的代码,但我仍然面临同样的问题。
-
也许,不是在读取时出错,而是在后面的处理中出错?
-
我同意@pasha701,你确定你在阅读部分得到了错误吗?请重新检查并确认。
-
如果您没有很多列,那么只需跳过标题并单独提供架构。
标签: csv apache-spark dataframe