gpt4 book ai didi

python-3.x - 如何将 xlsx 或 xls 文件读取为 Spark 数据帧

转载 作者:行者123 更新时间:2023-12-02 22:49:15 25 4
gpt4 key购买 nike

任何人都可以告诉我,在不转换 xlsx 或 xls 文件的情况下,我们如何将它们读取为 Spark 数据帧

我已经尝试使用 pandas 进行读取,然后尝试转换为 Spark 数据帧,但收到错误,错误是

错误:

Cannot merge type <class 'pyspark.sql.types.DoubleType'> and <class 'pyspark.sql.types.StringType'>

代码:

import pandas
import os
df = pandas.read_excel('/dbfs/FileStore/tables/BSE.xlsx', sheet_name='Sheet1',inferSchema='')
sdf = spark.createDataFrame(df)

最佳答案

我尝试根据 @matkurek 和 @Peter Pan 的回答在 2021 年 4 月给出一个总体更新版本。

Spark

您应该在 databricks 集群上安装以下 2 个库:

  1. 集群 -> 选择集群 -> 库 -> 安装新的 -> Maven -> 在坐标中:com.crealytics:spark-excel_2.12:0.13.5

  2. 集群 -> 选择您的集群 -> 库 -> 安装新的 -> PyPI-> 在中:xlrd

然后,您将能够按如下方式读取 Excel:

sparkDF = spark.read.format("com.crealytics.spark.excel") \
.option("header", "true") \
.option("inferSchema", "true") \
.option("dataAddress", "'NameOfYourExcelSheet'!A1") \
.load(filePath)

Pandas

您应该在 databricks 集群上安装以下 2 个库:

  1. 集群 -> 选择您的集群 -> 库 -> 安装新的 -> PyPI-> 在中:xlrd

  2. 集群 -> 选择集群 -> 库 -> 安装新的 -> PyPI-> 在中:openpyxl

然后,您将能够按如下方式读取 Excel:

import pandas
pandasDF = pd.read_excel(io = filePath, engine='openpyxl', sheet_name = 'NameOfYourExcelSheet')

请注意,您将有两个不同的对象,在第一个场景中是 Spark Dataframe,在第二个场景中是 Pandas Dataframe。

关于python-3.x - 如何将 xlsx 或 xls 文件读取为 Spark 数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56426069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com