示例
CSV内容
name,age
alice,18
bob,14
cassie,
scala代码
import org.apache.spark.sql.DataFrame
import org.apache.spark.sql.types.{StringType, IntegerType, StructField, StructType}
// 定义schema
val schema:StructType = StructType( Array(
StructField("name", StringType),
StructField("age", IntegerType)
))
// CSV文件目录
val csvFilePath: String = _
// 创建DataFrame
val df: DataFrame = spark.read.format("csv").schema(schema).option("header", true).option("mode", "dropMalformed").load(csvFilePath)
// df: org.apache.spark.sql.DataFrame = [name: string, age: int]
df.show
option参数
加载选项 | 可选项 | 默认值 | 含义 |
header | true,false | FALSE | CSV文件第一行是否为Data Schema |
seq | 任意字符 | , | 数据列之间的分隔符 |
escape | 任意字符 | \ | 转义字符 |
nullValue | 任意字符 | “”(空字符串) | 声明文件中的空值 |
dateFormat | SimpleDateFormat字符串 | yyyy-MM-dd | 声明日期格式 |
mode | permissive(脏数据替换为NULL),dropMalformed(跳过),failFase(报错退出) | permissive | 读取模式 |