14.3 Spark-SQL基于PostgreSQL数据分析编程实例 “卜算子·大数据”一个开源、成体系的大数据学习教程。
本文为王小雷原创文章,未经博主允许不得转载 https://blog.csdn.net/dream_an/article/details/81058073 14.4 Spark-SQL
会导致我们在提交spark脚本【执⾏spark-sql】的脚本,报错。如下图所示:⼀直显 示,读取⽼的hdfs的namenode路径。 ?
45,1,76006 6038,F,56,1,14706 6039,F,45,0,01060 6040,M,25,6,11106 [root@node1 ~]# (2)确认HDFS已经启动 (3)进入spark-sql...[root@node1 ~]# spark-sql 17/10/11 09:49:48 WARN NativeCodeLoader: Unable to load native-hadoop library...> (5)查看表结构 spark-sql> show create table user; CREATE EXTERNAL TABLE `user`(`userid` int, `gender` string...> (6)查询本地数据表 spark-sql> select * from user limit 10; 1 F 1 10 48067 2 M 56 16 70072 3...> 13.2 使用spark-sql处理Hive MeteStore中的表 注意,默认HDFS已经启动。
/cloudera/parcels/CDH/lib/spark/bin/spark-sql spark-sql> select current_user(); (可左右滑动) ?...执行SQL操作 spark-sql> select * from test; spark-sql> select name from test; spark-sql> select * t1; spark-sql...> select count(*) from t1; spark-sql> select * from p1_text; (可左右滑动) ?...Sentry只为fayson授予default.test.name和t1表的所有权限,而其他表则没有权限,对于只授权列权限的表,通过Spark-sql客户查询也会有权限问题。...而spark-sql与HiveCLI访问Hive模式一样,都是跳过HiveServer2服务直接访问的HiveMetastore,所以通过spark-sql可以正确获取到kinit的用户。
2016-08-31|6666.0| null|null| +----+------+---------+----+----------+------+------+----+ scala> (2)spark-sql...[root@node1 ~]# spark-sql 17/10/24 10:17:21 WARN NativeCodeLoader: Unable to load native-hadoop library...17/10/24 10:17:32 WARN ObjectStore: Failed to get database default, returning NoSuchObjectException spark-sql...> show databases; default test Time taken: 3.93 seconds, Fetched 2 row(s) spark-sql> show tables; default...HADRON NULL NULL 2016-08-31 6666.0 NULL NULL Time taken: 3.266 seconds, Fetched 13 row(s) spark-sql
所以 EMR 命令行先使用以下指令切换到 Hadoop 用户: [root@172 ~]# su Hadoop 通过如下命令您可以进入 SparkSQL 的交互式控制台: [hadoop@10~]$ spark-sql...新建一个数据库并查看: spark-sql> create database sparksql; Time taken: 0.907 seconds spark-sql> show databases...; default sparksqltest Time taken: 0.131 seconds, Fetched 5 row(s) 在新建的数据库中新建一个表,并进行查看: spark-sql...> use sparksql; Time taken: 0.076 seconds spark-sql> create table sparksql_test(a int,b string); Time...> insert into sparksql_test values (42,'hello'),(48,'world'); Time taken: 2.641 seconds spark-sql>
代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在前面的文章Fayson介绍了《如何在CDH中启用Spark Thrift》和《如何在Kerberos环境下的CDH集群部署Spark1.6 Thrift及spark-sql...注意:该步操作在集群所有节点上执行,因为考虑到后面部署spark-sql客户端,需要将这两个Jar包拷贝至集群所有节点。...4.验证Spark Thrift及spark-sql ---- 1.通过beeline测试 [root@cdh02 ~]# beeline beeline> !...2.使用spark-sql客户端需要将提到的两个jar包部署到集群所有节点。...注意:部署spark-sql客户端时需要创建$SPARK_HOME/launcher/target/scala-2.11目录,否则启动会报“java.lang.IllegalStateException
/login-spark.sh spark-sql> use default; -- create a COW table spark-sql> CREATE TABLE customer_cow USING...我们通过 Spark 分别给 COW 和 MOR 表插入一行数据: spark-sql> insert into customer_cow values (100, "Customer#000000100...", "jD2xZzi", "25-430-914-2194", 3471.59, "BUILDING", "cial ideas. final, furious requests", 25); spark-sql...再通过 Spark 插入c_custkey=32已经存在的数据,即覆盖已有数据: spark-sql> insert into customer_cow values (32, "Customer#000000032...-+-----------------+-----------+--------------+-------------------------------------+-------------+ spark-sql
注意:该步操作在集群所有节点上执行,因为考虑到后面部署spark-sql客户端,需要所有节点的spark-assessmbly jar包支持Thrift Server。...7.部署Spark SQL客户端 将spark-1.6.0-bin-hadoop2.6/bin/目录下的spark-sql脚本拷贝至/opt/cloudera/parcels/lib/spark/bin...目录下 [root@cdh04 ~]# cp spark-1.6.0-bin-hadoop2.6/bin/spark-sql /opt/cloudera/parcels/CDH/lib/spark/bin...4.验证Spark Thrift及spark-sql ---- 1.使用fayson的Kerberos账号初始化,通过beeline测试 [root@cdh01 ~]# kinit fayson [root...3.使用spark-sql客户端需要将集群所有节点CDH自带的spark-assembly Jar包替换为原生的spark-assembly-1.6.0-hadoop2.6.0.jar包。
肯定的,Spark with Hive的第二种集成方式:spark-sql CLI + Hive Metastore。...与spark-shell、spark-submit类似,spark-sql也是Spark内置的系统命令。...不过,相比前者,spark-sql CLI的集成方式多了一层限制,那就是在部署上,spark-sql CLI与Hive Metastore必须安装在同一个计算节点。...换句话说,spark-sql CLI只能在本地访问Hive Metastore,而没有办法通过远程的方式来做到这一点。...在这样的背景下,不得不说,spark-sql CLI本地访问的限制,极大地削弱了它的适用场景,这也是spark-sql CLI + Hive Metastore这种集成方式几乎无人问津的根本原因。
spark sql的集成方式(面试可能会问到) 二.spark_shell和spark_sql操作 spark_shell spark_sql 使用hiveserver2 + beeline 三.脚本使用spark-sql...三.脚本使用spark-sql ? 四.idea中读写Hive数据 1.从hive中读数据 ?...hadoop102:9000/user/hive/warehouse") .getOrCreate() val df = spark.read.json("D:\\idea\\spark-sql...hadoop102:9000/user/hive/warehouse") .getOrCreate() val df = spark.read.json("D:\\idea\\spark-sql.../hadoop102:9000/user/hive/warehouse") .getOrCreate() val df = spark.read.json("D:\\idea\\spark-sql
代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在前面的文章Fayson介绍了《如何在CDH中启用Spark Thrift》,《如何在Kerberos环境下的CDH集群部署Spark1.6 Thrift及spark-sql...客户端》,《如何在Kerberos环境下的CDH集群部署Spark2.1的Thrift及spark-sql客户端》。...注意:该步操作在集群所有节点上执行,因为考虑到后面部署spark-sql客户端,需要将这两个Jar包拷贝至集群所有节点。...4.验证Spark Thrift及spark-sql ---- 1.使用fayson的Kerberos账号初始化,通过beeline测试 [root@cdh01 ~]# kinit fayson [root...3.使用spark-sql客户端需要将提到的两个jar包部署到集群所有节点。
累加器(accumulators):只能用于做加法的变量,例如计算器或求和器 3、spark-sql spark-sql是将hive sql跑在spark引擎上的一种方式,提供了基于schema处理数据的方式...4、代码详解 java spark和spark-sql依赖。...2、这里在通过spark-sql读取到row数据之后,将schema解析出来,并且映射为hashmap。...} catch (Exception ex) { ex.printStackTrace(); } } // 读取shema,这里在通过spark-sql
Spark-SQL 和 ES 的组合 我之前一直在想这个问题,后面看了下es-hadoop的文档,发现自己有些思路和现在es-hadoop的实现不谋而合。...主要有几点: Spark-SQL 的 where 语句全部(或者部分)下沉到 ES里进行执行,依赖于倒排索引,DocValues,以及分片,并行化执行,ES能够获得比Spark-SQL更优秀的响应时间...其他部分包括分片数据Merge(Reduce操作,Spark 可以获得更好的性能和分布式能力),更复杂的业务逻辑都交给Spark-SQL (此时数据规模已经小非常多了),并且可以做各种自定义扩展,通过udf
2.11-1.6.0.jar 10 (一):命令行Spark SQL接口调试 编译成功后,将提前安装好的hive/conf/hive-site.xml拷贝到spark的conf/目录下, 执行,spark-sql...的启动命令,同时使用--jars 标签把mysql驱动包,hadoop支持的压缩包,以及通过hive读取hbase相关的jar包加入进来,启动 Java代码 bin/spark-sql --jars...Java代码 //yarn客户端模式 bin/spark-sql --master yarn-client --files conf/hive-site.xml --jars...-e "select name , count(1) as c from info group by name order by c desc ;" //spark alone模式 bin/spark-sql.../hbase/lib/htrace-core-2.04.jar -e "select * from dong limit 2 ;" //spark alone模式 bin/spark-sql
2.2 启动 spark-sql 在spark-shell执行 hive 方面的查询比较麻烦.spark.sql("").show Spark 专门给我们提供了书写 HiveQL 的工具: spark-sql...// 一般用于测试学习 [bigdata@hadoop002 spark]$ bin/spark-sql spark-sql> select count(*) from emp; ?...2.3 使用hiveserver2 + beeline spark-sql 得到的结果不够友好, 所以可以使用hiveserver2 + beeline 1.
spark.read.format("json").load(path) people.printSchema() people.show() spark.stop() } ---- 4.2 spark-shell/spark-sql...mysql/mysql-connector-java/5.1.45/mysql-connector-java-5.1.45.jar # spark.sql('sql语句').show # mysql spark-sql...image.png 3.thriftserver 和 spark-shell/spark-sql 的区别: spark-shell,spark-sql都是一个spark application thriftserver
领取专属 10元无门槛券
手把手带您无忧上云