你的代码几乎正确,只有一个小错误。在构建StructType
时,将列名age
和是否允许为NULL值(nullable)的标志放在一起时需要加上括号,以便正确解析。
以下是修正后的代码:
from pyspark.sql import SparkSession
from pyspark.sql.types import *
ss = SparkSession.builder.getOrCreate()
sc = ss.sparkContext
rdd = sc.parallelize([[1, 'apple', 22], [2, 'banana', 12], [3, 'cat', 8], [4, 'dog', 10]])
schemaType = StructType().add('id', IntegerType()). \
add('name', StringType()). \
add(StructField('age', IntegerType(), nullable=False))
df = ss.createDataFrame(rdd, schemaType)
df.show()
sc.stop()
运行以上代码会显示如下结果:
+---+------+---+
| id| name|age|
+---+------+---+
| 1| apple| 22|
| 2|banana| 12|
| 3| cat| 8|
| 4| dog| 10|
+---+------+---+
注意:这里使用了SparkSession来创建DataFrame,并且在输出结果之后停止了SparkContext。确保你已经根据自己的需求进行了适当的调整。
内容由零声教学AI助手提供,问题来源于学员提问