spark2.1 sql 自定义udf以及spark sql api

最近在写spark,等我更新。。。。。

spark sql 自定义udf


spark 定义视图


说明:在dataframe的基础上给出视图名称,dataframe可以来源于jdbc查询结果,也可以是json

val spark = SparkSession

      .builder()

      .appName("Spark SQL basic example")

      .config("spark.some.config.option", "some-value").master("local[*]")

      .getOrCreate()

spark.sparkContext.textFile("examples/src/main/resources/people.txt")

或者

spark.read

.format("jdbc")

.option("url",getValue(KeyConstant.S_URL).toString)

.option("dbtable",table)

.option("user",getValue(KeyConstant.S_USERNAME).toString)

.option("password",getValue(KeyConstant.S_PASSWORD).toString)

触发。load().where(条件)


另外附上 spark sql 语句的差异:http://www.cnblogs.com/yangsy0915/p/4867203.html


spark sql 集中sql 解析器


原文:http://blog.csdn.net/silviakafka/article/details/54091005

spark context 使用  其中包括了内置的SQL解析器:

  内置SQL  解析器:-->该解析器由scala编写,功能上还不能和hivesql媲美,只能支持部分的sql,

内置元数据信息:simpleCatalog【此对象中存放关系(表),比如我们指定的schema信息,类的信息,都是关系信息】

HiveQL解析器【支持hive的hql语法,如只有通过HiveContext生成的dataframe才能调用saveAsTable操作】

Hive的元数据信息:hiveCatalog(存放数据库和表的元数据信息)

三. Catalyst

所有的sql最终都会生成spark程序代码:


thriftserver作为一个前端,它其实只是主要分为两大块:

1.维护与用户的JDBC连接

2.通过HiveContext的API提交用户的HQL查询

你可能感兴趣的:(spark2.1 sql 自定义udf以及spark sql api)