如何为 spark-csv 提供 parserLib 和 inferSchema 选项

Posted

技术标签:

【中文标题】如何为 spark-csv 提供 parserLib 和 inferSchema 选项【英文标题】:How to provide parserLib and inferSchema options together for spark-csv 【发布时间】:2016-10-20 06:36:03 【问题描述】:
sqlContext.read.format("com.databricks.spark.csv").option("header", "true").option("inferSchema","true").option("parserLib", "UNIVOCITY").option("escape","\"").load("file.csv")

当我使用上述代码创建数据框时,出现以下错误:

错误执行程序:阶段 1.0 (TID 1) 中任务 0.0 中的异常 java.lang.AbstractMethodError: com.databricks.spark.csv.readers.BulkCsvReader.aggregate(Ljava/lang/Object;Lscala/Function2;Lscala/Function2;)Ljava/lang/Object;

如果我避免使用 parseLib 选项,它运行良好。 我想将 spark-csv 解析器设置为 Univocity,同时 spark csv 应该使用 inferSchema 识别数据类型。

注意:我使用的是 spark-csv 1.3(它不适用于任何版本) 火花:1.6.2 斯卡拉:2.10.5

谢谢。

【问题讨论】:

【参考方案1】:

我无法解决它。 但是我找到了在外部定义模式并使用“univocity”解析器读取 csv 的解决方法。

【讨论】:

以上是关于如何为 spark-csv 提供 parserLib 和 inferSchema 选项的主要内容,如果未能解决你的问题,请参考以下文章

如何为python安装解析器库[重复]

如何为 UIbuttons 提供约束

如何为引用自身的案例类提供 JsonFormats?

如何为 MKPolygonRenderer 提供图像?

如何为 UIBezierPath 提供cornerRadius

使用 spark-csv 在 zeppelin 中读取 csv 文件