excel - 如何在 Scala Spark 中从 Excel(xls、xlsx)文件构造 Dataframe?

标签 excel scala apache-spark apache-spark-sql spark-excel

我有一个包含多个工作表的大型 Excel(xlsx 和 xls) 文件,我需要将其转换为 RDDDataframe 以便它稍后可以加入其他dataframe。我正在考虑使用 Apache POI并将其保存为CSV,然后读取dataframe中的csv。但如果有任何库或 API 可以帮助这个过程就会很容易。非常感谢任何帮助。

最佳答案

问题的解决方案是在项目中使用 Spark Excel 依赖项。

Spark Excel有灵活的选项可供使用。

我已经测试了以下代码,可以从 excel 读取数据并将其转换为 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("path to your excel file")

data.show(false)

如果您的 Excel 工作表有多个工作表,您可以将 sheetname 作为 选项

.option("sheetName", "Sheet2")

希望对你有帮助

关于excel - 如何在 Scala Spark 中从 Excel(xls、xlsx)文件构造 Dataframe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44196741/

相关文章:

javascript - 如何验证 uploadFile js 中的格式

java - 用 Java 读取 XLSX 文件

java - 无法从命令行运行 Scala-Neo4j 项目

scala - Swagger 将 Option[Int] 建模为 Object,而 Option[String] 被正确建模为字符串

scala - 为什么sparkcontext停止了?

excel - 我想在excel的单元格中对齐/居中图像

excel - 如何按标题删除多列?

apache-spark - Airflow SparkKubernetes运算符(operator)日志记录

apache-spark - 从大型 Spark Dataframe 到 H2O Dataframe 的 H2O 苏打水错误

apache-spark - KryoSerializer 缓冲区溢出