如何加载包含多个要触发的字段的大型csv
新年快乐 我知道这类类似的问题以前曾被问过/回答过,但我的问题不同: 我有100+字段和100MB+的大尺寸csv,我想将其加载到Spark(1.6)进行分析,csv的标题看起来像附加的(只有一行数据) 多谢各位 更新1(美国东部时间2016年12月31日下午1:26): 我使用以下方法并能够加载数据(列有限的示例数据),但是,我需要自动将标题(来自csv)指定为数据框中字段的名称,但是,数据框如下所示: 有人能告诉我怎么做吗?注意,任何手动方式都是我想要避免的如何加载包含多个要触发的字段的大型csv,csv,apache-spark,pyspark,Csv,Apache Spark,Pyspark,新年快乐 我知道这类类似的问题以前曾被问过/回答过,但我的问题不同: 我有100+字段和100MB+的大尺寸csv,我想将其加载到Spark(1.6)进行分析,csv的标题看起来像附加的(只有一行数据) 多谢各位 更新1(美国东部时间2016年12月31日下午1:26): 我使用以下方法并能够加载数据(列有限的示例数据),但是,我需要自动将标题(来自csv)指定为数据框中字段的名称,但是,数据框如下所示: 有人能告诉我怎么做吗?注意,任何手动方式都是我想要避免的 >>> im
>>> import csv
>>> rdd = sc.textFile('file:///root/Downloads/data/flight201601short.csv')
>>> rdd = rdd.mapPartitions(lambda x: csv.reader(x))
>>> rdd.take(5)
>>> df = rdd.toDF()
>>> df.show(5)
如评论中所述,您可以将spark.read.csv用于spark 2.0.0+() 将header设置为True将把header解析为dataframe的列名。将inferSchema设置为True将获得表架构(但会减慢读取速度) 另见此处:
使用标准方法加载此数据集时遇到什么问题?(例如:)谢谢。问题是100多个字段,显式添加所有字段是一项繁琐的工作,我相信应该有一种成熟的方法来处理它。请查看我上面提到的确切答案-如果您使用spark csv包来读取文件,则有
标题
选项可以轻松解决您的问题。谢谢pyspark——packages com.databricks:spark-csv_2.10:1.4.0
解决spark 1.6中的问题谢谢,我在spark 1.6上,上面Mariusz的回答解决了这个问题。
df = spark.read.csv('your_file.csv', header=True, inferSchema=True)