【发布时间】:2017-09-13 15:40:52
【问题描述】:
我有“a.txt”,它是 csv 格式并由制表符分隔:
16777216 16777471 -33.4940 143.2104
16777472 16778239 Fuzhou 26.0614 119.3061
然后我运行:
sc.textFile("path/to/a.txt").map(line => line.split("\t")).toDF("startIP", "endIP", "City", "Longitude", "Latitude")
然后我得到了:
java.lang.IllegalArgumentException:要求失败:数量 列不匹配。旧列名 (1): value 新列名 (5): startIP, endIP, City, Longitude, Latitude at scala.Predef$.require(Predef.scala:224) 在 org.apache.spark.sql.Dataset.toDF(Dataset.scala:376) 在 org.apache.spark.sql.DatasetHolder.toDF(DatasetHolder.scala:40) ... 47 省略
如果我只是跑步:
res.map(line => line.split("\t")).take(2)
我明白了:
rdd: Array[Array[String]] = Array(Array(16777216, 16777471, "", -33.4940, 143.2104), Array(16777472, 16778239, Fuzhou, 26.0614, 119.3061))
这里有什么问题?
【问题讨论】:
标签: scala csv apache-spark spark-dataframe