我一直在工作的json ro flattened它。我已经flattemed json和得到所有的fields我有一个父数据集与4列:---名字,姓氏,gmail,年龄以及使用过滤器(过滤最高年龄Age)和分组依据(GMAIL分组)从父子集提取的子子集。现在列我得到的子集是:-最大年龄最大年龄和gmail现在我想要的是使用下面的子集,我想要从父集中提取子集中存在的所有列这怎么能做到呢......提前感谢
nnsrf1az1#
您可以根据“年龄”和“gmail”加入考虑以下 Dataframe :
df = spark.createDataFrame([["Amy","Santiago", 32, "good99@gmail.com"],["Rosa", "Dias", 31,"good99@gmail.com"],["Norm", "Skully", 50,"bad99@gmail.com"]]).toDF("Name", "LastName", "Age", "Gmail");
这样就行了
df_agg = df.alias("df1")\ .join(df.groupBy("gmail").agg(F.max("Age").alias("Age")).alias("df2"), F.col("df1.Age").eqNullSafe(F.col("df2.Age")) & F.col("df1.Gmail").eqNullSafe(F.col("df2.Gmail")))\ # Join .selectExpr("df1.*")\ # Select only Df1 columns .show()
输出:
1条答案
按热度按时间nnsrf1az1#
您可以根据“年龄”和“gmail”加入
考虑以下 Dataframe :
这样就行了
输出: