Spark怎么样可以拉取excel的数据

Spark不能直接拉一个excel的数据,我尝试了一下使用平常的方法

  def main(args: Array[String]): Unit = {
    
    
    val conf = new SparkConf().setAppName("TextDriver").setMaster("local[1]")
    val context = new SparkContext(conf)
    val value: RDD[String] = context.textFile("C:\\Users\\Desktop\\123.xlsx")
    value.foreach(println(_))
  }

但是最后发现,这个方法不行,读出来的数据是乱码,最后看了看其他的方式,找到了一个可行的方式,通过SparkSql去拉取,不过我们需要导入一个支持的jar

		<dependency>
            <groupId>com.crealytics</groupId>
            <artifactId>spark-excel_2.11</artifactId>
            <version>0.12.2</version>
        </dependency>

读取的方式如下

  def main(args: Array[String]): Unit = {
    
    
    val session = SparkSession.builder().master("local").appName("loadExcel").getOrCreate()
    //com.crealytics.spark.excel就是前面导入的jar里面的一个资源路径
    val frame: DataFrame = session.read.format("com.crealytics.spark.excel")
      .option("useHeader", "true")//是否首行为元数据
      //.option("timestampFormat", "MM-dd-yyyy HH:mm:ss")这个是如果你的数据中有时间数据需要指定一下转换的格式
      //.option("inferSchema", "false")这个可以没有,用的话一般都是用false
      //.option("workbookPassword", "None")文件的密码
      .load("C:\\Users\\Desktop\\1.xlsx")
    frame.foreach(println(_))
  }

猜你喜欢

转载自blog.csdn.net/dudadudadd/article/details/113863823