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

时间:2018-03-15 17:42:34

标签: python apache-spark pyspark bigdata spark-dataframe

数据集采用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

如何解析此问题并使用列工厂和状态创建数据框(这将包含除工厂之外的所有数据,如列表)?

1 个答案:

答案 0 :(得分:0)

您可以使用$output = array ('login' => $login, 'haslo' => $haslo); header("Content-type: application/json"); header("Access-Control-Allow-Credentials: true"); header("Access-Control-Allow-Origin: *.baza.testypilkarskie.pl"); header("AMP-Access-Control-Allow-Source-Origin: https://baza.testypilkarskie.pl"); header("Access-Control-Expose-Headers: AMP-Access-Control-Allow-Source-Origin"); echo json_encode($output); die(); 或使用DataFrames和def test_mommy(self): today = arrow.now() yesterday = today.replace(days=-1) foo = mommy.make('Model') bar = mommy.make('Model') foo.created = today.naive foo.save() bar.created = yesterday.naive bar.save() model_1_created = Model.objects.all()[0].created model_2_created = Model.objects.all()[1].created self.assertNotEqual(model_1_created.strftime('%Y-%m-%d'), model_2_created.strftime('%Y-%m-%d'))

执行此操作

RDD

首先创建一个样本数据集:

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:])来完成此操作,但为了便于阅读,我将其分为两部分。

数据帧

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