【发布时间】:2019-12-11 22:32:23
【问题描述】:
我在通过 PySpark 拆分 CSV 文件时遇到问题。我正在尝试输出酒的国家和名称(这只是为了证明解析有效),但出现错误。
这是 CSV 文件的外观:
,国家,描述,名称,积分,价格,省份,region_1,region_2,品种,酒厂
20,美国,“Heitz 自 1961 年以来就用稀有的 Grignolino 葡萄酿制了这款一流的桃红葡萄酒。宝石红葡萄柚红色,带有草莓、西瓜、橙皮和咸味香料的味道,散发着浓郁的花香。”,Grignolino ,95,24.0,California,Napa Valley,Napa,Rosé,Heitz
这是我的代码
from pyspark import SparkConf, SparkContext
conf = SparkConf().setMaster("local").setAppName("SQLProject")
sc = SparkContext(conf = conf)
def parseLine(line):
fields = line.split(',')
country = fields[1]
points = fields[4]
return country, points
lines = sc.textFile("file:///Users/luisguillermo/IE/Spark/Final Project/wine-reviews/winemag-data-130k-v2.csv")
rdd = lines.map(parseLine)
results = rdd.collect()
for result in results:
print(result)
并得到这个错误:
File "/Users/luisguillermo/IE/Spark/Final Project/wine-reviews/country_and_points.py", line 10, in parseLine
points = fields[4]
IndexError: list index out of range
由于描述中有逗号,程序似乎变得混乱。有关如何解决此问题的任何想法?
【问题讨论】:
-
为什么不使用 spark 的内置 CSV 阅读器:spark.apache.org/docs/2.4.4/api/python/….
-
可能有问题,因为你在
,上拆分,并且你的描述中有,。 -
我同意@DrChess,为什么不为此使用适当的 csv 库?
标签: python csv apache-spark pyspark