博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spark-sql cli 参数 及使用
阅读量:4545 次
发布时间:2019-06-08

本文共 2698 字,大约阅读时间需要 8 分钟。

很难找到spark-sql cli使用的教程,总结下 一、启动方法 /data/spark-1.4.0-bin-cdh4/bin/spark-sql --master spark://master:7077 --total-executor-cores 10  --executor-memory 1g --executor-cores  2 注:/data/spark-1.4.0-bin-cdh4/为spark的安装路径 /data/spark-1.4.0-bin-cdh4/bin/spark-sql –help 查看启动选项 --master MASTER_URL           指定master url --executor-memory MEM          每个executor的内存,默认为1G --total-executor-cores NUM       所有executor的总核数 -e 
直接执行查询SQL -f
以文件方式批量执行SQL 二、Spark sql对hive支持的功能 1、查询语句:SELECT GROUP BY ORDER BY CLUSTER BY SORT BY 2、hive操作运算: 1) 关系运算:= ==, <>, <, >, >=, <= 2) 算术运算:+, -, *, /, % 3) 逻辑运算:AND, &&, OR, || 4) 复杂的数据结构 5) 数学函数:(sign, ln, cos, etc) 6) 字符串函数: 3、 UDF 4、 UDAF 5、 用户定义的序列化格式 6、join操作:JOIN {LEFT|RIGHT|FULL} OUTER JOIN LEFT SEMI JOIN CROSS JOIN 7、 unions操作: 8、 子查询: SELECT col FROM ( SELECT a + b AS col from t1) t2 9、Sampling 10、 Explain 11、 分区表 12、 视图 13、 hive ddl功能:CREATE TABLE、CREATE TABLE AS SELECT、ALTER TABLE 14、 支持的数据类型:TINYINT SMALLINT INT BIGINT BOOLEAN FLOAT DOUBLE STRING BINARY TIMESTAMPDATE ARRAY MAP STRUCT 三、Spark sql 在客户端编程方式进行查询数据 1、启动spark-shell ./spark-shell --master spark://master:7077 --total-executor-cores 10 --executor-memory 1g --executor-cores 2 2、编写程序 val sqlContext = new org.apache.spark.sql.SQLContext(sc) val df = sqlContext.read.json("../examples/src/main/resources/people.json") 查看所有数据:df.show() 查看表结构:df.printSchema() 只看name列:df.select("name").show() 对数据运算:df.select(df("name"), df("age") + 1).show() 过滤数据:df.filter(df("age") > 21).show() 分组统计:df.groupBy("age").count().show() 1、查询txt数据 import sqlContext.implicits._ case class Person(name: String, age: Int) val people = sc.textFile("../examples/src/main/resources/people.txt").map(_.split(",")).map(p => Person(p(0), p(1).trim.toInt)).toDF() people.registerTempTable("people") val teenagers = sqlContext.sql("SELECT name, age FROM people WHERE age >= 13 AND age <= 19") 2、parquet文件 val df = sqlContext.read.load("../examples/src/main/resources/users.parquet") 3、hdfs文件 val df = sqlContext.read.load("hdfs://namenode.Hadoop:9000/user/hive/warehouse/spark_test.db/test_parquet/part-r-00001.gz.parquet") 4、保存查询结果数据 val df = sqlContext.read.load("../examples/src/main/resources/users.parquet") df.select("name", "favorite_color").write.save("namesAndFavColors.parquet“) 四、Spark sql性能调优 缓存数据表:sqlContext.cacheTable("tableName") 取消缓存表:sqlContext.uncacheTable("tableName") spark.sql.inMemoryColumnarStorage.compressedtrue 当设置为true时,Spark SQL将为基于数据统计信息的每列自动选择一个压缩算法。 spark.sql.inMemoryColumnarStorage.batchSize 10000 柱状缓存的批数据大小。更大的批数据可以提高内存的利用率以及压缩效率,但有OOMs的风险 转载注明出处

转载于:https://www.cnblogs.com/mobiwangyue/p/9049928.html

你可能感兴趣的文章
【14】387. First Unique Character in a String
查看>>
Luncene学习二《搜索索引》
查看>>
(数据科学学习手札44)在Keras中训练多层感知机
查看>>
None.js 第四步 事件驱动程序
查看>>
[原创]南水之源A*(A-Star)算法
查看>>
STL之map
查看>>
获取或者设置时,无后缀和A后缀和W后缀的区别
查看>>
【转】linux驱动开发
查看>>
MongoDB 那些坑(转)
查看>>
acm新生集训第一周比赛题解
查看>>
ActiveMQ broker和客户端之间的确认
查看>>
矢量图形绘制算法浅析
查看>>
人活着系列之平方数 分类: sdutOJ 20...
查看>>
写的很好的博客->有关性能优化、图片缓存等
查看>>
linux安装tree树结构
查看>>
2、linux上离线安装python
查看>>
DataTableHelper.cs 将DataTable转换为List,将List转换为DataTable的实现类
查看>>
客户端HTTP断点续传的原理
查看>>
IOS 取消表格单元格 TableViewCell 去掉高亮状态 点击Cell取消选择状态
查看>>
应用程序框架实战九:应用程序框架的局限
查看>>