看到,
在Spark中有两种将RDD转换为DF的方法。
toDF()和
createDataframe(rdd, schema)toDF()
该
toDF()命令为您提供了将转换
RDD[Row]为数据框的方法。关键是,对象
Row()可以接收
**kwargs参数。因此,有一种简单的方法可以做到这一点。
from pyspark.sql.types import Row#here you are going to create a functiondef f(x): d = {} for i in range(len(x)): d[str(i)] = x[i] return d#Now populate thatdf = rdd.map(lambda x: Row(**f(x))).toDF()
这样,您将能够动态创建数据框。
createDataframe(rdd,模式)完成此 *** 作的另一种方法是创建动态模式。怎么样?
这条路:
from pyspark.sql.types import StructTypefrom pyspark.sql.types import StructFieldfrom pyspark.sql.types import StringTypeschema = StructType([StructField(str(i), StringType(), True) for i in range(32)])df = sqlContext.createDataframe(rdd, schema)
第二种方法更清洁…
这样便可以动态创建数据框。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)