赞
踩
核心代码:
- val spark = SparkSession
- .builder()
- .master("local[*]")
- .appName("app")
- .getOrCreate()
- //读取文件
- //方式一:
- val srcDF = spark
- .read
- .format("csv")
- .option("header","true")
- .option("multiLine","true")
- .option("encoding","gbk") //utf-8
- .load("file:///C:\\1.csv")
-
- //方式二:
- val df = spark
- .read
- .option("header","true")
- .option("multiLine","true")
- .option("encoding","gbk") //utf-8
- .csv("/user/hadoop/test.csv")
-
- spark.stop()
关键参数:
format:指定读取csv文件。
header:是否指定头部行作为schema。
multiLine:在单元格中可能因为字数多有换行,但是不指定这个参数,处理数据时可能会报错。指定这个参数为true,可以将换行的单元格合并为1行。
encoding:指定编码格式如gbk或utf-8
如下表对option
里面的参数,进行介绍:
参数 | 解释 |
header | 默认是false ,将第一行作为列名 |
encoding | 默认是uft-8通过给定的编码类型进行解码 |
sep | 默认是, 指定单个字符分割字段和值 |
inferSchema | inferSchema(默认为 false`):从数据自动推断输入模式。 *需要对数据进行一次额外的传递 |
multiLine | 默认是false ,解析一条记录,该记录可能跨越多行 |
inferSchema | inferSchema(默认为 false`):从数据自动推断输入模式。 *需要对数据进行一次额外的传递。如:option("inferSchema", true.toString) //这是自动推断属性列的数据类型 |
nullValue | 默认是空的字符串,设置null值的字符串表示形式。从2.0.1开始,这适用于所有支持的类型,包括字符串类型 |
emptyValue | 默认是空字符串,设置一个空值的字符串表示形式 |
核心代码:
- resultDF.write.mode("Append").csv("C:\\Users\\Desktop\\123")
-
- resultDF.writer.mode("overwrite").option("header","ture").option("encoding","utf-8").csv("/user/hadoop/data")
mode参数设置org.apache.spark.sql.DataFrameWriter源码:
- /**
- * Specifies the behavior when data or table already exists. Options include:
- * <ul>
- * <li>`overwrite`: overwrite the existing data.</li>
- * <li>`append`: append the data.</li>
- * <li>`ignore`: ignore the operation (i.e. no-op).</li>
- * <li>`error` or `errorifexists`: default option, throw an exception at runtime.</li>
- * </ul>
- *
- * @since 1.4.0
- */
- def mode(saveMode: String): DataFrameWriter[T] = {
- this.mode = saveMode.toLowerCase(Locale.ROOT) match {
- case "overwrite" => SaveMode.Overwrite
- case "append" => SaveMode.Append
- case "ignore" => SaveMode.Ignore
- case "error" | "errorifexists" | "default" => SaveMode.ErrorIfExists
- case _ => throw new IllegalArgumentException(s"Unknown save mode: $saveMode. " +
- "Accepted save modes are 'overwrite', 'append', 'ignore', 'error', 'errorifexists'.")
- }
- this
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。