首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Databricks pyspark中导入Excel文件

如何在Databricks pyspark中导入Excel文件
EN

Stack Overflow用户
提问于 2018-09-18 17:50:44
回答 1查看 7.5K关注 0票数 0

我正在尝试将我的excel文件导入Azure-DataBricks机器中的PySpark,我必须将其移动到PySpark Dataframe。我无法执行此操作。获取错误

代码语言:javascript
复制
import pandas
data = pandas.read_excel('/dbfs/FileStore/tables/Time_Payments.xlsx')
df_data = sqlContext.createDataFrame(data)

执行上述操作时,出现以下错误。

代码语言:javascript
复制
Error : field Additional Information: Can not merge type <class 'pyspark.sql.types.DoubleType'> and <class 'pyspark.sql.types.StringType'> 

这里需要你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2018-09-18 17:57:18

这个问题是由这样的事实引起的:您的Excel文件要么包含内部具有不同类型的列(例如数字和字符串),要么一些值是空的,因此当将其转换为熊猫数据帧时,它会用"NaN“填充空白,例如数字列。当不能推断模式时,这会导致spark出错。

尝试使用模式作为参数创建数据帧。

例如:

代码语言:javascript
复制
#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://github.com/crealytics/spark-excel

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52383793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档