1. spark 读取CSV文件;
可以直接使用DataBricks的第三方包来读取CSV文件,下载第三方包后放入指定路径
1.1 定义数据格式
导入数据之前我们需要按照具体的数据格式定义数据格式
采用StructType定义字段格式,与数据集中的各个字段一一对应。
// StructField 中的的三个参数分别为字段名称、字段数据类型和是否不允许为空。
val fieldSchema = StructType(Array(
StructField("TID", StringType, true),
StructField("Lat", DoubleType, true),
StructField("Lon", DoubleType, true),
StructField("Time", StringType, true)
))
2. spark读取数据
定义好字段格式之后,调用了 sqlContext 提供的 read 接口,指定加载格式 format 为第三方库中定义的格式 com.databricks.spark.csv 。因为本次课程使用的数据集中首行没有各列的字段名称,因此需要设置读取选项 header 为 false。最后,在 load 方法中 指明待读取的数据集文件的路径。
val taxiDF = sqlContext.read.format("com.databricks.spark.csv").option("header", "false").schema(fieldSchema).load("/home/shiyanlou/taxi.csv")
注意,因为我们是在 Spark Shell 中以交互式命令行的形式输入代码,Spark Shell 在启动过程中就已经创建好了 sqlContext 对象,我们可以直接使用。如果你是在以独立应用的方式开发 Spark 程序,请手动通过 Spark Context 来创建 SQL Context 。