我正在尝试将我的excel文件导入Azure-DataBricks机器中的PySpark,我必须将其移动到PySpark Dataframe。我无法执行此操作。获取错误
import pandas
data = pandas.read_excel('/dbfs/FileStore/tables/Time_Payments.xlsx')
df_data = sqlContext.createDataFrame(data)执行上述操作时,出现以下错误。
Error : field Additional Information: Can not merge type <class 'pyspark.sql.types.DoubleType'> and <class 'pyspark.sql.types.StringType'> 这里需要你的帮助。
发布于 2018-09-18 17:57:18
这个问题是由这样的事实引起的:您的Excel文件要么包含内部具有不同类型的列(例如数字和字符串),要么一些值是空的,因此当将其转换为熊猫数据帧时,它会用"NaN“填充空白,例如数字列。当不能推断模式时,这会导致spark出错。
尝试使用模式作为参数创建数据帧。
例如:
#Create PySpark DataFrame Schema
p_schema = StructType([StructField('ADDRESS',StringType(),True),StructField('CITY',StringType(),True),StructField('FIRSTNAME',StringType(),True),StructField('LASTNAME',StringType(),True),StructField('PERSONID',DecimalType(),True)])
#Create Spark DataFrame from Pandas
df_person = sqlContext.createDataFrame(data, p_schema)但我建议使用一个特定的包来处理Excel文件直接加载到Spark dataframe,而不是通过Panda:
https://stackoverflow.com/questions/52383793
复制相似问题