scala 语言接入后,Spark 支持的其它语言也可以进行访问,如 pyspark 等
Spark 2.x 内置支持的数据源:
Spark 2.x 访问数据源示例:
b) 读数据
- val df = spark.read.json("pathToJson")
- // 提供schema信息
- val schemaType = StructType(Seq(
- StructField("year", IntegerType, nullable = true))
- spark.read.schema(schemaType)json("pathToJson")
- // 带一些参数设置,如csv的分隔符等
- spark.read.option("header", "false").option("sep", ",").csv("pathToCsv"")
- // load api, 等同于spark.read.json("pathToLoad")
- spark.read.format("json").load("pathToLoad")
- // sql方式访问
- df.createOrReplaceTempView("t")
- spark.sql("select * from t")
c) 写数据
- val df = Seq(1, 2, 3).toDF("a")
- df.write.json("jsonWritePath")
- // 等同上面写法
- df.write.format("json").save("jsonWritePath")
- // 带参数
- df.write
- .option("header", "true")
- .option("compression", "gZiP")
- .csv("csvWritePath")
- // 路径存在,则覆盖
- df.write.mode("overwrite").json("jsonWritePath")
**d) **sparkSQLText using DataSource
- spark.sql("create table t(a string) using json")
- spark.sql("insert int table t select 1")
- spark.sql("select * from t")
- ...
来源: https://yq.aliyun.com/articles/71013