f = sc.textFile("s3://test/abc.csv") <br />
header = f.first()
header will give you as below:-<br />
u'col1,col2,col3' --> for example taking 3 columns name
head = str(header).split(",") <br />
head will give you a list<br/>
['col1','col2','col3']
fDF = f.filter(lambda row: row!=header).map(lambda x: str(x).split(",")).toDF(head)<br/>
fdF.show() <br/>
3条答案
按热度按时间yyhrrdl81#
将根据需要提供Dataframe中的头和数据。
3duebb1j2#
下面是如何使用dataframe添加列名:
假设您的csv有分隔符','。在将数据传输到Dataframe之前,请按以下步骤准备数据:
假设数据有3列:
现在,您可以在使用将此rdd传输到dataframe时指定列名
toDF()
:如果不指定列名,则会得到一个具有默认列名“\u 1”、“\u 2”、…:
b4lqfgs43#
这个问题的解决方案实际上取决于您运行的spark版本。假设您使用的是spark 2.0+,那么您可以将csv作为Dataframe读入,并使用todf添加列,这有助于将rdd转换为Dataframe或向现有Dataframe添加列。