SparkSQL
道法—自然
不积跬步,无以至千里;不积小流,无以成江海。——荀子
展开
-
创建dataframe的几种方式——读取json格式的文件
创建DataFrame的方式一共有读取json格式的文件创建DataFrame注意:json文件中的json数据不能嵌套json格式数据。 DataFrame是一个一个Row类型的RDD,df.rdd()/df.javaRdd()。 可以两种方式读取json格式的文件。 df.show()默认显示前20行数据。 DataFrame原生API可以操作DataFrame(不方便)。...原创 2018-11-23 21:15:08 · 3426 阅读 · 0 评论 -
SparkSQL中用户自定义聚合函数——UDAF
UDAF:用户自定义聚合函数。实现UDAF函数如果要自定义类要继承UserDefinedAggregateFunction类Java代码:SparkConf conf = new SparkConf();conf.setMaster("local").setAppName("udaf");JavaSparkContext sc = new JavaSparkContext(conf)...原创 2018-11-24 09:54:34 · 430 阅读 · 0 评论 -
sparkSQL中自定义函数——UDF
自定义函数是可以根据函数中参数的个数去选择哪一种函数(UDF1,UDF2...) SparkConf conf = new SparkConf();conf.setMaster("local");conf.setAppName("udf");JavaSparkContext sc = new JavaSparkContext(conf);SQLContext sqlContext =...原创 2018-11-23 22:50:07 · 510 阅读 · 0 评论 -
创建dataframe的几种方式——读取Hive中的数据加载成DataFrame
读取Hive中的数据加载成DataFrameHiveContext是SQLContext的子类,连接Hive建议使用HiveContext。 由于本地没有Hive环境,要提交到集群运行,提交命令:./spark-submit --master spark://node1:7077,node2:7077 --executor-cores 1 --executor-memory 2G ...原创 2018-11-23 22:36:58 · 3316 阅读 · 1 评论 -
创建dataframe的几种方式——读取jdbc中的数据创建dataframe(以MySQL为例)
读取JDBC中的数据创建DataFrame(MySql为例)两种方式创建DataFrame一、Java代码SparkConf conf = new SparkConf();conf.setMaster("local").setAppName("mysql");JavaSparkContext sc = new JavaSparkContext(conf);SQLContext s...原创 2018-11-23 22:02:49 · 1069 阅读 · 0 评论 -
创建dataframe的几种方式——读取parquet格式的文件
读取parquet文件创建DataFrame注意:可以将DataFrame存储成parquet文件。保存成parquet文件的方式有两种:df.write().mode(SaveMode.Overwrite)format("parquet") .save("./sparksql/parquet");df.write...原创 2018-11-23 21:54:17 · 4659 阅读 · 0 评论 -
创建dataframe的几种方式——读取非json格式的RDD(通过动态创建schema的方式创建)
动态创建Schema将非json格式的RDD转换成DataFrame一、Java代码:SparkConf conf = new SparkConf();conf.setMaster("local").setAppName("rddStruct");JavaSparkContext sc = new JavaSparkContext(conf);SQLContext sqlConte...原创 2018-11-23 21:38:38 · 840 阅读 · 0 评论 -
创建dataframe的几种方式——读取非json格式的RDD(通过反射的方式创建)
非json格式的RDD创建DataFrame通过反射的方式将非json格式的RDD转换成DataFrame(不建议使用)自定义类要可序列化 自定义类的访问级别是Public RDD转成DataFrame后会根据映射将字段按Assci码排序 将DataFrame转换成RDD时获取字段两种方式,一种是df.getInt(0)下标获取(不推荐使用),另一种是df.getAs(“列名”)获取(推...原创 2018-11-23 21:31:15 · 292 阅读 · 0 评论 -
创建dataframe的几种方式——读取json格式的RDD
一、Java代码SparkConf conf = new SparkConf();conf.setMaster("local").setAppName("jsonRDD");JavaSparkContext sc = new JavaSparkContext(conf);SQLContext sqlContext = new SQLContext(sc);JavaRDD<Str...原创 2018-11-23 21:20:23 · 961 阅读 · 0 评论 -
SparkSQL中开窗函数
开窗函数注意:row_number() 开窗函数是按照某个字段分组,然后取另一字段的前几个的值,相当于 分组取topN如果SQL语句里面使用到了开窗函数,那么这个SQL语句必须使用HiveContext来执行,HiveContext默认情况下在本地无法创建。开窗函数格式:row_number() over (partitin by XXX order by XXX)Java...原创 2018-11-24 09:55:03 · 2030 阅读 · 0 评论