将字符串列表转换为Python数据帧 - pyspark python sparksql

时间:2017-08-09 08:48:23

标签: python pyspark

我有以下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对象? `

1 个答案:

答案 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