如何在 Databricks pyspark 中导入 Excel 文件
Posted
技术标签:
【中文标题】如何在 Databricks pyspark 中导入 Excel 文件【英文标题】:how to import Excel file in Databricks pyspark 【发布时间】:2018-09-18 09:50:43 【问题描述】:我正在尝试将我的 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'>
在这里需要您的帮助。
【问题讨论】:
【参考方案1】:问题是由于您的 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 数据框,而不通过 Panda:
https://github.com/crealytics/spark-excel
【讨论】:
你能说得更准确一点吗?我不确定如何为此编写代码。如果您有示例代码,请分享。非常感谢您的帮助。 是的,我试过了。代码在这里不起作用。我收到“无效语法”错误以上是关于如何在 Databricks pyspark 中导入 Excel 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Databricks 的 PySpark 中使用在 Scala 中创建的 DataFrame
如何使用 Python / Pyspark 在 Databricks 笔记本中合并数据帧
如何在 Azure Databricks PySpark 中执行存储过程?