我正在运行PySpark shell,无法创建数据框。我弄完了

import pyspark
from pyspark.sql.types import StructField
from pyspark.sql.types import StructType


全部没有任何错误返回。

然后,我尝试运行以下命令:

schemaString = "name age"
fields = [StructField(field_name, StringType(), True) for field_name in schemaString.split()]


并继续得到错误:`name'StructField'未定义

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

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

fields = [StructField('field1', StringType(), True)]

最佳答案

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

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

fields = [StructField(field_name, StringType(), True)
    for field_name in schemaString.split()]

08-04 23:25