如何从pyspark的csv格式解析元组数据?

2024-05-15 17:23:45 发布

您现在位置:Python中文网/ 问答频道 /正文

数据集采用CSV格式。这个文件中的每一行都包含一个元组,其中第一个元素是植物的名称,其余元素是植物所在的状态。在

示例:

abelia,fl,nc
abelia x grandiflora,fl,nc
abelmoschus,ct,dc,fl,hi,il,ky,la,md,mi,ms,nc,sc,va,pr,vi

如何解析它并创建一个包含plants和states列的数据帧(这将包含除plant以外的所有数据,就像一个列表)?在


Tags: 文件csv数据名称元素示例状态格式
1条回答
网友
1楼 · 发布于 2024-05-15 17:23:45

在 您可以使用rdd.map()或使用DataFrames和udf()来完成此操作:

RDD

首先创建一个示例数据集:

text = """abelia,fl,nc
abelia x grandiflora,fl,nc
abelmoschus,ct,dc,fl,hi,il,ky,la,md,mi,ms,nc,sc,va,pr,vi"""

rdd = sc.parallelize(map(lambda x: (x,), text.split("\n")))
rdd.toDF(["rawText"]).show(truncate=False)
#+                            +
#|rawText                                                 |
#+                            +
#|abelia,fl,nc                                            |
#|abelia x grandiflora,fl,nc                              |
#|abelmoschus,ct,dc,fl,hi,il,ky,la,md,mi,ms,nc,sc,va,pr,vi|
#+                            +

现在使用map()两次。首先通过在,上拆分,将每个记录映射到一个列表。第二个命令将拆分的字符串映射为(x[0], x[1:])形式的元组:

^{pr2}$

您也可以在一次调用map()中完成此操作,但为了可读性,我将其分成两部分。在

数据帧

^{3}$

相关问题 更多 >