PYSPARK:如何使用数据帧?

时间:2016-10-18 19:33:57

标签: python apache-spark pyspark

我有以下数据框

from pyspark import SparkContext
from pyspark.sql import SQLContext
from pyspark.sql.functions import *

sc = SparkContext()
sql = SQLContext(sc)

df1 = sql.createDataFrame([("Mark", 68), ("John", 59), ("Mary", 49)], ['Name', \
'Weight'])

df2 = sql.createDataFrame([("White", 68), ("Smith", 59), ("Gary", 49)], ['Name', \
    'Weight'])

现在我想从权重列中随机选择n = 2(可以是任意数字)对并创建以下对,每对由两个不等权重组成:

(68, 59)
(49, 68) 

然后我想从df1中选择权重为68和49的那些,而df2只选择权重为59和68的那些并创建另一个数据帧:

df3 = sql.createDataFrame([("Mark", 68, "Smith", 59), ("Mary", 49, "White", 68)], ['Name1', \
    'Weight1', 'Name2', 'Weight2'])

我正在使用大数据。给定n,我首先需要生成n对,然后创建最终的数据帧。

1 个答案:

答案 0 :(得分:0)

尝试:

>>> df1.where(df1['Weight'].between(68, 59)).union(df2.where(df2['Weight'].between(49, 68)))