【问题标题】:how to import Excel file in Databricks pyspark如何在 Databricks pyspark 中导入 Excel 文件
【发布时间】: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'> 

在这里需要您的帮助。

【问题讨论】:

    标签: python apache-spark pyspark bigdata


    【解决方案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

    【讨论】:

    • 你能说得更准确一点吗?我不确定如何为此编写代码。如果您有示例代码,请分享。非常感谢您的帮助。
    • 是的,我试过了。代码在这里不起作用。我收到“无效语法”错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-20
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多