2016-12-29 64 views
1

我正在運行PySpark shell並且無法創建數據框。我已經完成無法在PySpark中使用StructField

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()] 

而且不斷收到錯誤:'名「StructField」沒有定義

基本上,我正在關注的星火文檔瀏覽:https://spark.apache.org/docs/1.3.0/sql-programming-guide.html

奇怪的,如果我刪除了for循環,做到這一點,它的工作原理:

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

我會仔細檢查你是否已經正確導入'StructField'。 – 2016-12-29 20:21:13

+0

啊,看起來像我必須做'從pyspark.sql.types進口*'而不是'從pyspark.sql import *' – simplycoding

回答

1

它適用於以下代碼。文件StructFieldStringType。雖然1.3很古老。

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

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