这个例子非常简单,我需要用以下代码将python列表转换成数据帧
from pyspark.sql.types import StructType
from pyspark.sql.types import StructField
from pyspark.sql.types import StringType, IntegerType
schema = StructType([StructField("value", IntegerType(), True)])
my_list = [1, 2, 3, 4]
rdd = sc.parallelize(my_list)
df = sqlContext.createDataFrame(rdd, schema)
df.show()
失败,错误如下:
raise TypeError("StructType can not accept object %r in type %s" % (obj, type(obj)))
TypeError: StructType can not accept object 1 in type <class 'int'>
请参见以下代码:
测向
此解决方案也是一种使用较少代码、避免序列化到RDD的方法,而且可能更容易理解:
注意:关于命名变量
list
:术语list
是一个Python内置函数,因此,强烈建议我们避免使用内置名称作为变量的名称/标签,因为我们最终会覆盖list()
函数等内容。当快速和肮脏的原型设计时,许多人使用类似的东西:mylist
。相关问题 更多 >
编程相关推荐