问题:
spark_df = spark.createDataFrame(df)
pandas df 转换为spark df 时报错如下:
TypeError: field id: Can not merge type <class 'pyspark.sql.types.StringType'> and <class 'pyspark.sql.types.LongType'>
原因:
并不是数据类型不匹配,而是数据中存在空值,将空值进行替换后成功创建。
解决办法:
import pandas as pd
pandas_id = pd.read_csv('file.txt', sep='\t', names=["id"],dtype=str)
pandas_id = pandas_id.replace(pd.NA,'')
spark_id = spark.createDataFrame(pandas_id) # 需要将pandas的dataframe结构转为spark的dataframe结构