我已从CSV文件创建了RDD,该文件的第一行是标题行。现在我想从该RDD创建DataFrame,并保留来自RDD的第一个元素的列。
问题是我能够创建包含rdd.first()列的DataFrame,但所创建的DataFrame的第一行是它自己的标题。如何删除它?
如何避免第一个元素移动到数据帧数据中。 我能否在rdd.toDF(rdd.first())中提供任何选项来完成这项工作?请注意:我无法收集rdd以形成列表,然后从该列表中删除第一个项目,然后将该列表并行化以再次形成rdd,然后toDF()... 请建议!!! 谢谢
问题是我能够创建包含rdd.first()列的DataFrame,但所创建的DataFrame的第一行是它自己的标题。如何删除它?
lines = sc.textFile('/path/data.csv')
rdd = lines.map(lambda x: x.split('#####')) ###multiple char sep can be there #### or #@# , so can't directly read csv to a dataframe
#rdd: [[u'mailid', u'age', u'address'], [u'satya', u'23', u'Mumbai'], [u'abc', u'27', u'Goa']] ###first element is the header
df = rdd.toDF(rdd.first()) ###retaing te column from rdd.first()
df.show()
#mailid age address
mailid age address ####I don't want this as dataframe data
satya 23 Mumbai
abc 27 Goa
如何避免第一个元素移动到数据帧数据中。 我能否在rdd.toDF(rdd.first())中提供任何选项来完成这项工作?请注意:我无法收集rdd以形成列表,然后从该列表中删除第一个项目,然后将该列表并行化以再次形成rdd,然后toDF()... 请建议!!! 谢谢