我有一个本地CSV“test.csv”,其中第一行是列名,后面的行是数据。 我尝试在Java中读取这样的CSV:
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(20, 130, 300, 100)];
[view setBackgroundColor:gradientColor];
[self.view addSubview:view];
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(20, 240, 300, 100)];
[label setBackgroundColor:gradientColor];
[self.view addSubview:label];
这里建议:
Read csv as Data Frame in spark 1.6
但我一直收到错误:
Dataset<Row> test_table = sparkSession()
.sqlContext()
.read()
.format("com.databricks.spark.csv")
.option("header", "true")
.option("inferSchema", "true")
.load("test.csv");
问题是什么以及如何从CSV读取数据集?
答案 0 :(得分:1)
univocity-parsers图书馆的作者。发生这种情况是因为内部spark将最大值长度设置为-1
(意味着没有限制)。这是在univocity-parsers 2.2.0版本中引入的。
只需确保此库版本大于2.2.0,您应该没问题,因为旧版本不支持将maxCharsPerColumn
属性设置为-1
。
如果您的类路径中有该库的多个版本,请删除旧版本。理想情况下,您需要更新到最新版本(目前为2.5.4。)并仅使用它。它应该工作得很好,因为我们确保对库的任何更改都是向后兼容的。
答案 1 :(得分:0)
主要是由于您使用的依赖项。 尝试使用其他类似的
--packages com.databricks:spark-csv_2.10:1.5.0 or spark-csv_2.10:1.4.0
它应该有用。