无法将 StructField 与 PySpark 一起使用

sim*_*ing 4 python apache-spark pyspark

我正在运行 PySpark shell,但无法创建数据框。我已经搞定了

import pyspark
from pyspark.sql.types import StructField
from pyspark.sql.types import StructType
Run Code Online (Sandbox Code Playgroud)

全部没有返回任何错误。

然后我尝试运行这些命令:

schemaString = "name age"
fields = [StructField(field_name, StringType(), True) for field_name in schemaString.split()]
Run Code Online (Sandbox Code Playgroud)

并不断收到错误:` name 'StructField' 未定义

基本上,我在这里关注 Spark 文档:https://spark.apache.org/docs/1.3.0/sql-programming-guide.html

奇怪的是,如果我删除for循环并执行此操作,它会起作用:

fields = [StructField('field1', StringType(), True)]
Run Code Online (Sandbox Code Playgroud)

Roc*_*ang 6

它适用于以下代码。StructFieldStringType的文档。虽然 1.3 已经很老了。

from pyspark.sql.types import *
schemaString = "name age"

fields = [StructField(field_name, StringType(), True) 
    for field_name in schemaString.split()]
Run Code Online (Sandbox Code Playgroud)