2024-05-15 17:23:45 发布
网友
数据集采用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以外的所有数据,就像一个列表)?在
在 您可以使用rdd.map()或使用DataFrames和udf()来完成此操作:
rdd.map()
udf()
首先创建一个示例数据集:
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:])形式的元组:
map()
,
(x[0], x[1:])
您也可以在一次调用map()中完成此操作,但为了可读性,我将其分成两部分。在
在 您可以使用
rdd.map()
或使用DataFrames和udf()
来完成此操作:RDD
首先创建一个示例数据集:
现在使用
^{pr2}$map()
两次。首先通过在,
上拆分,将每个记录映射到一个列表。第二个命令将拆分的字符串映射为(x[0], x[1:])
形式的元组:您也可以在一次调用
map()
中完成此操作,但为了可读性,我将其分成两部分。在数据帧
^{3}$相关问题 更多 >
编程相关推荐