谁能告诉我在不转换 xlsx 或 xls 文件的情况下我们如何将它们读取为 Spark 数据框
我已经尝试使用 pandas 进行读取,然后尝试转换为 Spark 数据帧,但出现错误,错误是
Error:
Cannot merge type <class 'pyspark.sql.types.DoubleType'> and <class 'pyspark.sql.types.StringType'>
Code:
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 个库:
-
集群 -> 选择你的集群 -> 库 -> 安装新的 -> Maven -> 在坐标: com.crealytics:spark-excel_2.12:0.13.5
-
集群 -> 选择你的集群 -> 库 -> 安装新的 -> PyPI -> inPackage: 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 个库:
-
集群 -> 选择你的集群 -> 库 -> 安装新的 -> PyPI -> inPackage: xlrd
-
集群 -> 选择你的集群 -> 库 -> 安装新的 -> PyPI -> inPackage: openpyxl
然后,您将能够按如下方式读取 Excel:
import pandas
pandasDF = pd.read_excel(io = filePath, engine='openpyxl', sheet_name = 'NameOfYourExcelSheet')
请注意,您将有两个不同的对象,在第一个场景中是 Spark Dataframe,在第二个场景中是 Pandas Dataframe。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)