pyspark中的大型数据帧生成

2024-06-26 02:24:41 发布

您现在位置:Python中文网/ 问答频道 /正文

无法在internet中找到解决方案

尝试创建包含10个int列和n行随机值的数据帧。需要生成大量行(例如n=1000万行)。如果我自己有10行生成的数据(pyspark dataframe),我如何填充它们直到n行通过。
生成的数据框应由pyspark用拼花地板编写

这方面的最佳解决方案是什么


Tags: 数据dataframe解决方案internetpysparkint拼花地板
1条回答
网友
1楼 · 发布于 2024-06-26 02:24:41

您可以在循环中使用flatMap来创建指数级增长的行数:

rdd = spark.sparkContext.parallelize([(1,2,3,4,5,6,7,8,9,10)])

def f(t):    
    for c in range(0,10):        
        yield tuple((i+c) * 1664525 for i in t)

#Increase the size of this loop to create more data.
#The number of rows will be 10 ^ n
for _ in range(0, 2):
    rdd = rdd.flatMap(f)
    rdd = rdd.repartition(int(spark.conf.get('spark.sql.shuffle.partitions')))
    print(rdd.count())

#write result to parquet file
df = spark.createDataFrame(rdd)
df.write.parquet("mytestdata")

相关问题 更多 >