栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

scala+spark将datdframe数据写入excel文件并存储在hdfs制定路径

scala+spark将datdframe数据写入excel文件并存储在hdfs制定路径

开发环境:IDEA

hadoop集群版本:  2.7.3

spark集群版本: 2.4.8

(1)需要导入pom依赖


    com.crealytics
    spark-excel_2.12
    0.13.5

(2)通过spark将示例数据构造为dataframe结构

def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setAppName("ExcelFileToHdfs").setMaster("local[*]")
 
    val sparkSession = SparkSession.builder().config(conf).getOrCreate()
    val sc = sparkSession.sparkContext
 
    val spark = new SQLContext(sc)
    val dataframe = spark.createDataframe(Seq(
      (0, gg, "10", "aaaaaaa"),
      (1, ff, "62", "bbbbbbb"),
      (2, ee, "15", "ccccccc"),
      (3, dd, "44", "ddddddd")
    )).toDF("id", "c1", "c2", "c3")
    dataframe.show()
   
    val hdfsFilePath = "存储路径"

    dataframe.repartition(1).write
      .format("com.crealytics.spark.excel")
      .option("dataAddress", "A1") // 指定sheet名称和要开始写入的cell位置或cell范围
      .option("header", "true") //是否输出表头
      .option("encoding", "UTF-8")
      .option("delimiter", ",")
      .option("dateFormat", "yyyy-mm-dd hh:mm:ss") // Optional, default: yy-m-d h:mm
      .option("timestampFormat", "yyyy-mm-dd hh:mm:ss") // Optional, default: yyyy-mm-dd hh:mm:ss.000
      .mode(SaveMode.Append) // Optional, default: overwrite. "append"模式下可以在一个Excel文件中追加多个sheet
      .save(hdfsFilePath) // 要输出的HDFS文件路径
  }

}

需要注意:若数据中存在时间格式数据,需要指定时间格式,否则默认写入格式很蹩脚

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/663208.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号