我是pyspark编程的初学者。我在一个csv文件中有以下数据,该文件被读入sparkDataframe,并希望从一个小数据集开始生成一个大数据集。
# read the csv file in a spark dataframe
df = (spark.read
.option("inferSchema", "true")
.option("header", "true")
.csv(file_path))
我想将每个列中的数据(即“invoiceno”、“stockcode”、“description”)分别无序排列,如下所示。
下面的代码是为orderby列值随机实现的-
from pyspark.sql.functions import *
df.orderBy("InvoiceNo", rand()).show(10)
我没有得到正确的输出,即使在执行上述。有人能帮忙解决这个问题吗?这个链接也被引用:在sparkrdd或dataframe中随机洗牌列,但是上面提到的代码抛出了一个错误。
1条答案
按热度按时间ctehm74n1#
皮斯帕克
rand
函数可用于在Dataframe上创建一列随机值。然后,Dataframe可以由新列排序以产生随机顺序,例如。要分别随机化每列的顺序,请分别为每列创建一个Dataframe并随机化,每个Dataframe都有一个唯一的种子,例如。
要用原始列重新组合Dataframe,可以添加一个行号,然后在该行号上进行连接,例如。