我试图在Spark中使用随机均匀分布创建一个 Dataframe 。我找不到任何关于如何创建 Dataframe 的内容,但当我阅读文档时,我发现pyspark.mllib.random
有一个RandomRDDs
对象,该对象有一个uniformRDD
方法,可以从随机均匀分布创建rdds。
但问题是它不能创建二维的rdds,有没有一种方法可以创建一个二维的rdd或者(最好是)dataframe?
我可以创建一些rdd并使用它们来创建一个 Dataframe ,但我使用的数据集有许多字段(100多个),创建100个rdd然后压缩它们似乎效率不高。
3条答案
按热度按时间vhipe2zx1#
您可以生成统一的Vectors RDD并将其转换为DataFrame
有关更多信息,您可以随时查看这里的官方文档。
编辑:(检查注解)
如果希望每个值都在单独的列中,则不需要将向量转换为DenseVector,而是转换为列表:
qxsslcnc2#
要生成具有n行和n列的随机 Dataframe ,可以使用以下函数
以及
对于标准正态分布。然而,Eliasah建议的
似乎要快得多。
swvgeqrz3#
下面的解决方案忽略了我在问题中提到的我自己的担忧
我可以创建一些rdd并使用它们来创建一个 Dataframe ,但我使用的数据集有许多字段(100多个),创建100个rdd然后压缩它们似乎效率不高。
我必须处理
zip
位,因为Spark Dataframe 是面向行的。我可以在for
循环中将ncol
与nrow
交换,但由于行数远远大于列数编辑
添加了eliasah的方法和我的方法的时间比较