我正在尝试将 Pandas DF 转换为 Spark one。 DF头:
10000001,1,0,1,12:35,OK,10002,1,0,9,f,NA,24,24,0,3,9,0,0,1,1,0,0,4,543
10000001,2,0,1,12:36,OK,10002,1,0,9,f,NA,24,24,0,3,9,2,1,1,3,1,3,2,611
10000002,1,0,4,12:19,PA,10003,1,1,7,f,NA,74,74,0,2,15,2,0,2,3,1,2,2,691
代码:
dataset = pd.read_csv("data/AS/test_v2.csv")
sc = SparkContext(conf=conf)
sqlCtx = SQLContext(sc)
sdf = sqlCtx.createDataFrame(dataset)
我得到了一个错误:
TypeError: Can not merge type <class 'pyspark.sql.types.StringType'> and <class 'pyspark.sql.types.DoubleType'>
原文由 Ivan Sudos 发布,翻译遵循 CC BY-SA 4.0 许可协议
您需要确保您的 pandas 数据框列适合 spark 正在推断的类型。如果您的 pandas 数据框列出如下内容:
你得到那个错误尝试:
现在,确保
.astype(str)
实际上是您希望这些列成为的类型。基本上,当底层 Java 代码试图从 python 中的对象推断类型时,它会使用一些观察结果并进行猜测,如果该猜测不适用于列中的所有数据,它会尝试从 pandas 转换为火花它会失败。