如何将xlsx或xls文件作为Spark数据帧读取 [英] How to read xlsx or xls files as spark dataframe

查看:10
本文介绍了如何将xlsx或xls文件作为Spark数据帧读取的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有人可以在不转换xlsx或xls文件的情况下让我知道,我们如何才能将它们作为Spark数据帧读取

我已经尝试与 pandas 一起阅读,然后尝试转换为Spark DataFrame,但收到错误,错误为

错误:

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)

推荐答案

我尝试在2021年4月根据@matkurek和@Peter pan.的回答给出一个全面的更新版本。

火花

您应该在Databricks群集上安装以下两个库:

  1. 群集-&>选择您的群集-&>库-&>在坐标中安装新-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群集上安装以下两个库:

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

  2. 群集-&>选择您的群集-&>库-&>在包中安装新的-Openpyxl

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

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

请注意,您将拥有两个不同的对象,在第一个方案中为Spark Dataframe,在第二个方案中为Pandas Dataframe。

这篇关于如何将xlsx或xls文件作为Spark数据帧读取的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆