我有以下Python / Pyspark代码:
sql_command = ''' query ''''
df = spark.sql(sql_command)
ls_colnames = df.schema.names
ls_colnames
['id', 'level1', 'level2', 'level3', 'specify_facts']
cSchema = StructType([
StructField("colname", StringType(), False)
])
df_colnames = spark.createDataFrame(dataset_array,schema=cSchema)
File" /opt/mapr/spark/spark-2.1.0/python/pyspark/sql/types.py" ;, line 1366,在_verify_type中 提出TypeError(" StructType不能接受类型%s"%(obj,type(obj))中的对象%r)TypeError:StructType不能接受对象' id' 在类型类' str'
我可以做些什么来获得colnames的spark对象? `
答案 0 :(得分:1)
不确定我是否正确理解了您的问题。但是,如果您尝试基于给定列表创建数据框,则可以使用以下代码。
from pyspark.sql import Row
l = ['id', 'level1', 'level2', 'level3', 'specify_facts']
rdd1 = sc.parallelize(l)
row_rdd = rdd1.map(lambda x: Row(x))
sqlContext.createDataFrame(row_rdd,['col_name']).show()
希望它有所帮助。
此致
Neeraj