PySpark -为循环中的每个唯一项目创建一个临时表

z31licg0  于 2022-11-28  发布在  Spark
关注(0)|答案(1)|浏览(208)

我希望你能帮助我。
我有一个大表,其中包含用户已解决任务的信息。我需要创建一个随机样本,样本大小等于每个用户总条目的10%。我已经创建了一个临时表,其中包含样本大小的信息(表1):https://i.stack.imgur.com/7dM97.jpg
而现在我想:
1.为每个用户创建一个带有临时表(从通用表创建)的循环(基于表1),其中包含适当数量的任务
1.将所有临时表合并到一个包含示例结果的主表中。
1.删除临时表(附加)
General overview
像这样的事情可以在PySpark中执行吗?

dbf7pr2w

dbf7pr2w1#

我已经找到了一个创建动态表的解决方案,但我仍然有一个关于样本大小的问题:

from pyspark.sql.types import IntegerType
#df5 - column with Size of Sample
df5 = df5.withColumn("Size", df5["Size"].cast(IntegerType()))

dataCollect = df5.collect()
df5.show()
for row in dataCollect:
print(row['User'])
print(row['Size'])
#df2 - INPUT with all Records
df6 = df2.filter(df2.User == row['User'])
df6 = df6.limit(row['Sizes'])
df_Final = df_Final.union(df6).distinct()

然后,我创建一个包含所有选定样本的表。

相关问题