spark(4)
SparkSQL
-----------------------------
该模块能在spark上运行sql语句
DataFrame //数据框,相当于mysql中的表
使用类似SQL的方式来访问hadoop,实现MR计算。RDD
df = sc.createDataFrame(rdd);
DataSet<Row> ==DataFrame===>//类似于table操作
SparkSQL java
---------------------------------------------
package com.it18zhang.scalaDemo; import org.apache.spark.SparkConf; /**json * Created by stone on 2018/9/28. */ public class SQLJava { public static void main(String[] args){ SparkConf conf = new SparkConf(); conf.setMaster("local"); conf.setAppName("SQLJava"); SparkSession session = SparkSession.builder().appendName("SQLJava").config("master","local").getOrCreate(); Dataset<Row> df = session.read().json("file:///d:/scala/json.dat"); df.show(); } }
将DataFrame转换成RDD的操作
--------------------------------------------------------------
JavaRDD<Row> rdd = df1.toJavaRDD();
保存spark的sql计算结果(json)
---------------------------------------------
//保存成json文件。
df.write().json(dir);
//设置保存模式
df.mode(SavaMode.APPEND);
json文件的读写
----------------------------------
//读取json文件形成的df对象
SparkSeesion.read().json("...");
//将数据框数据写入json文件
SparkSeesion.write().json("....");
SparkDataFrame以jdbc方式操纵的表
---------------------------------------------------
1.引入mysql驱动