在Pyspark中加入两个文件而不使用sparksql / dataframes

时间:2016-06-08 12:50:03

标签: apache-spark pyspark

我有两个文件客户和销售如下

客户:

  

cu_id名称区域城市州
   1 Rahul ME Vizag AP
   2 Raghu SE HYD TS
   3 Rohith ME BNLR KA

销售:

  

sa_id销售国家
  2 100000 IND
  3 230000美国
  4 240000英国

两个文件都是\ t分隔的。 我想基于来自客户的cu_id和使用pyspark的销售中的sa_id加入两个文件,而不使用sparksql / dataframes。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你绝对可以使用Spark提供的join方法来处理RDD的工作。

您可以执行以下操作:

customerRDD = sc.textFile("customers.tsv").map(lambda row: (row.split('\t')[0], "\t".join(row.split('\t')[1:])))
salesRDD = sc.textFile("sales.tsv").map(lambda row: (row.split('\t')[0], "\t".join(row.split('\t')[1:])))

joinedRDD = customerRDD.join(salesRDD)

您将获得一个新的RDD,其中包含来自客户和销售文件的唯一连接记录。

相关问题