最近在写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程序代码:
1.维护与用户的JDBC连接
2.通过HiveContext的API提交用户的HQL查询