我有以下数据框
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对,然后创建最终的数据帧。
答案 0 :(得分:0)
尝试:
>>> df1.where(df1['Weight'].between(68, 59)).union(df2.where(df2['Weight'].between(49, 68)))