内容简介:spark-sql是spark的一个核心组件,可以实现简单的关系型数据库操作。如果进入spark-sql报以下错误:Caused by: ERROR XSDB6: Another instance of Derby may have already booted the database /home/bigdata/spark/bin/metastore_db.
spark-sql是spark的一个核心组件,可以实现简单的关系型数据库操作。
一,启动spark-sql
cd /bigdata/spark/bin ./spark-sql
如果进入spark-sql报以下错误:
Caused by: ERROR XSDB6: Another instance of Derby may have already booted the database /home/bigdata/spark/bin/metastore_db.
解决办法:
[root@bigserver1 bin]# ps aux |grep java |grep -i sql
root 24797 2.1 16.8 3286436 559340 pts/2 Sl+ 13:13 1:23 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/bin/java -cp /bigdata/spark/conf/:/bigdata/spark/jars/*:/bigdata/hadoop/etc/hadoop/ -Xmx512m org.apache.spark.deploy.SparkSubmit --class org.apache.spark.sql.hive.thriftserver.SparkSQLCLIDriver spark-internal
[root@bigserver1 bin]# kill
24797
在启动就好
二,创建表
1,以文本方式存储
create external table mytest1(id bigint, name string) row format delimited fields terminated by ',' location 'hdfs://bigserver1:9000/test/spark/tank3';
这种方式创建的表,是以文本的形式存储的
2,以parquet存储
CREATE TABLE mytest3 (id bigint, name string) USING HIVE OPTIONS(fileFormat 'PARQUET') location 'hdfs://bigserver1:9000/test/spark/tank4';
这种创建表的方式,指定了文件存储方式,在用scala读取时会方便一些。
在这里要注意一点,如果没有指定location的话,默认会装到
spark-sql 创建表
hive_serde_tab2,hive_serde_tab1表名
三,添加数据
INSERT INTO mytest3 VALUES (1,"zhang"), (2,"tank")
对于数据的编辑和删除,纯spark-sql现在还不支持,后面会尝试着结合,hive和hbase,来进行。希望达到的目的就是,能实现简单的增,删,改,查
四,单表查询数据,根关系型的差不多
五,用scala去读取上面创建的二个表
1,读取文本表
scala> var test = spark.read.format("text").option("header", true).option("delimiter", ",").load("hdfs://bigserver1:9000/test/spark/tank3"); test: org.apache.spark.sql.DataFrame = [value: string] scala> test.withColumn("_tmp", split($"value", ",")).select( | $"_tmp".getItem(0).as("id"), | $"_tmp".getItem(1).as("name") | ).drop("_tmp").show(); +---+-----+ | id| name| +---+-----+ | 2|zhang| | 3| ying| | 1| tank| +---+-----+
2,读取parquet表
scala> var test = spark.read.load("hdfs://bigserver1:9000/test/spark/tank4"); test: org.apache.spark.sql.DataFrame = [id: bigint, name: string] scala> test.show(); +---+-----+ | id| name| +---+-----+ | 1|zhang| | 2| tank| +---+-----+
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- HashMap为何从头插入改为尾插入
- C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——插入
- HashMap之元素插入
- 插入排序
- PHP 实现插入排序
- 特殊排序——二分+插入排序
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
企业应用架构模式
Martin Fowler / 王怀民、周斌 / 机械工业出版社 / 2010-4 / 59.00元
《企业应用架构模式》作者是当今面向对象软件开发的权威,他在一组专家级合作者的帮助下,将40多种经常出现的解决方案转化成模式,最终写成这本能够应用于任何一种企业应用平台的、关于解决方案的、不可或缺的手册。《企业应用架构模式》获得了2003年度美国软件开发杂志图书类的生产效率奖和读者选择奖。《企业应用架构模式》分为两大部分。第一部分是关于如何开发企业应用的简单介绍。第二部分是《企业应用架构模式》的主体......一起来看看 《企业应用架构模式》 这本书的介绍吧!
HTML 压缩/解压工具
在线压缩/解压 HTML 代码
RGB转16进制工具
RGB HEX 互转工具