Python 在Pyspark中将Pandas数据帧转换为Spark数据帧时发生类型错误

Python 在Pyspark中将Pandas数据帧转换为Spark数据帧时发生类型错误,python,pandas,apache-spark,pyspark,Python,Pandas,Apache Spark,Pyspark,我做了研究,但没有发现任何关于这个的东西。我想将一个简单的pandas.DataFrame转换为spark数据帧,如下所示: df = pd.DataFrame({'col1': ['a', 'b', 'c'], 'col2': [1, 2, 3]}) sc_sql.createDataFrame(df, schema=df.columns.tolist()) 我得到的错误是: TypeError: Can not infer schema for type: <class 'str'

我做了研究,但没有发现任何关于这个的东西。我想将一个简单的
pandas.DataFrame
转换为spark数据帧,如下所示:

df = pd.DataFrame({'col1': ['a', 'b', 'c'], 'col2': [1, 2, 3]})
sc_sql.createDataFrame(df, schema=df.columns.tolist()) 
我得到的错误是:

TypeError: Can not infer schema for type: <class 'str'>
我得到:

TypeError: Can not infer schema for type: <class 'numpy.int64'>
TypeError:无法推断类型的架构:
有什么帮助吗?是否需要手动指定架构

sc_sql
是一个
pyspark.sql.SQLContext
,我在Python3.4和spark 1.6上的jupyter笔记本中


谢谢

这与您的spark版本有关,spark的最新更新使类型推断更加智能。您可以通过如下方式添加架构来修复此问题:

mySchema = StructType([ StructField("col1", StringType(), True), StructField("col2", IntegerType(), True)])
sc_sql.createDataFrame(df,schema=mySchema)

我试过了,代码运行良好,没有错误。对我来说,不管有没有模式…你使用的是哪个spark版本?我使用的是spark 1.6.1你使用的Pandas是什么版本?
mySchema = StructType([ StructField("col1", StringType(), True), StructField("col2", IntegerType(), True)])
sc_sql.createDataFrame(df,schema=mySchema)