如何在 Databricks 中读取批量 excel 文件数据并加载到 spark 数据框中
Posted
技术标签:
【中文标题】如何在 Databricks 中读取批量 excel 文件数据并加载到 spark 数据框中【英文标题】:How to read bulk excel file data and load into spark dataframe in Databricks 【发布时间】:2019-06-04 15:34:39 【问题描述】:我想读取包含 80 万条记录和 230 列的批量 Excel 数据。我已经使用 spark 和 pandas dataframe 读取数据,但是在使用 spark 数据帧读取数据时,我收到以下消息。
消息:火花驱动器已意外停止并正在重新启动。您的笔记本将自动重新附加。
我使用 spark 使用了下面的代码。
df=spark.read.format("com.crealytics.spark.excel").option("useheader","true").option("treatEmptyValuesAsNulls","true").option("inferSchema", "true").option("addColorColumns", "False").option("location","/dbfs/FileStore/test/abc.xlsx").load()
Using scala:
import org.apache.spark.sql.SQLContext
import org.apache.spark.SparkConf, SparkContext
import org.apache.spark.sql.DataFrame
def readExcel(file: String): DataFrame = sqlContext.read
.format("com.crealytics.spark.excel")
.option("location", file)
.option("useHeader", "true")
.option("treatEmptyValuesAsNulls", "true")
.option("inferSchema", "true")
.option("addColorColumns", "False")
.load()
val data = readExcel("/dbfs/test/abc.xlsx")
data.show(false)
【问题讨论】:
【参考方案1】:您可以做的两件事是增加集群上的内存或使用 excel 库中的 max rows in memory 选项来帮助流式传输一定数量的数据:
.option("maxRowsInMemory", 20)
【讨论】:
以上是关于如何在 Databricks 中读取批量 excel 文件数据并加载到 spark 数据框中的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Databricks 使用服务原理通过 spark 数据框将批量数据插入 Sql Server 数据仓库
如何在 Databricks 中迭代以读取存储在数据湖不同子目录中的数百个文件?
如何在 Azure Databricks 中使用 JDBC 从 PostgreSQL 读取表数据?
通过 Python 中的 Databricks api 读取 Databricks 表?
如何将压缩的 TSV 文件读取到 Databricks 上的数据框?
如何修复从 cosmos db 中的 databricks scala 读取流中的“错误:未找到:键入 CosmosDBSourceProvider”