sparksql hive作为数据源
根据官方文档的说法,要把hive-site.xml,core-site.xml,hdfs-site.xml拷贝到spark的conf目录下,保证mysql已经启动

java
public class Demo {
private static SparkSession session = SparkSession.builder().appName("demo").enableHiveSupport()
.config("spark.sql.warehouse.dir", "/user/hive/warehouse").getOrCreate();
public static void main(String[] args) {
session.sql("drop table if exists students_info");
session.sql("create table if not exists students_info(name string,age int) "
+ "row format delimited fields terminated by '\t' \r\n");
// 将数据导入学生信息表
session.sql(
"load data local inpath '/opt/module/spark-test/data/student_infos.txt' into table default.students_info");
session.sql("drop table if exists students_score");
session.sql("create table if not exists students_score(name string,score int) \r\n"
+ "row format delimited fields terminated by '\t' \r\n");
// 将数据导入学生成绩表
session.sql(
"load data local inpath '/opt/module/spark-test/data/student_scores.txt' into table default.students_score");
// 查询
Dataset<Row> dataset = session.sql(
"select s1.name,s1.age,s2.score from students_info s1 join students_score s2 on s1.name=s2.name where s2.score>80");
// 将dataset中的数据保存到hive中
session.sql("drop table if exists students_result");
dataset.write().saveAsTable("students_result");
// 将hive中的表转成dataset,查看数据是否成功保存
Dataset<Row> table = session.table("students_result");
table.show();
session.stop();
}
}
scala
object Demo {
def main(args: Array[String]): Unit = {
val session = SparkSession.builder().appName("demo").enableHiveSupport().config("spark.sql.warehouse.dir", "/user/hive/warehouse").getOrCreate()
session.sql("drop table if exists students_info")
session.sql("create table if not exists students_info(name string,age int) \r\n row format delimited fields terminated by '\t'")
session.sql("load data local inpath '/opt/module/spark-test/data/student_infos.txt' into table default.students_info")
session.sql("drop table if exists students_score")
session.sql("create table if not exists students_score(name string,score int) \r\n row format delimited fields terminated by '\t'")
session.sql("load data local inpath '/opt/module/spark-test/data/student_scores.txt' into table default.students_score")
//保存到hive中
session.sql("drop table if exists students_result")
session.sql("select s1.name,s1.age,s2.score from students_info s1 join students_score s2 on s1.name=s2.name where s2.score >90").write.saveAsTable("students_result")
//检查数据是否保存
val df = session.table("students_result")
df.show()
session.stop()
}
}
sparksql hive作为数据源的更多相关文章
- SparkSQL读写外部数据源--数据分区
import com.twq.dataset.Utils._ import org.apache.spark.sql.{SaveMode, SparkSession} object FileParti ...
- SparkSQL读写外部数据源-基本操作load和save
数据源-基本操作load和save object BasicTest { def main(args: Array[String]): Unit = { val spark = SparkSessio ...
- SparkSQL读写外部数据源-jext文件和table数据源的读写
object ParquetFileTest { def main(args: Array[String]): Unit = { val spark = SparkSession .builder() ...
- SparkSQL读写外部数据源-通过jdbc读写mysql数据库
object JdbcDatasourceTest { def main(args: Array[String]): Unit = { val spark = SparkSession .builde ...
- SparkSQL读写外部数据源--csv文件的读写
object CSVFileTest { def main(args: Array[String]): Unit = { val spark = SparkSession .builder() .ap ...
- SparkSQL读写外部数据源-json文件的读写
object JsonFileTest { def main(args: Array[String]): Unit = { val spark = SparkSession .builder() .m ...
- 报表使用hive数据源报java.net.SocketTimeoutException: Read timed out
数据库表的数据量大概50W左右,在报表设计器下创建了hive的数据源,连接正常,由于数据量比较大,就用了润乾报表的大数据报表功能,报表设置好后,发布到页面中报错: 数据集ds1中,SQL语句SELEC ...
- Sparksql 取代 Hive?
sparksql hive https://databricks.com/blog/2014/07/01/shark-spark-sql-hive-on-spark-and-the-future-o ...
- SparkSQL程序设计
1.创建Spark Session val spark = SparkSession.builder . master("local") .appName("spark ...
随机推荐
- hadoop 2.4.1 集群安装二
1:创建文件夹 [jifeng@feng01 hadoop]$ mkdir tmp [jifeng@feng01 hadoop]$ mkdir name [jifeng@feng01 hadoop]$ ...
- Android 监听软键盘点击回车及换行事件
mEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean ...
- 5W1H分析法和5W2H分析法
5W1H分析法也称六何分析法,是一种思考方法,也可以说是一种创造技法.是对选定的项目.工序或操作,都要从原因(WHY).对象(WHAT).地点(WHERE).时间(WHEN).人员(WHO).方法(H ...
- php ignore_user_abort()实现计划(定时执行)任务功能
? 1 2 3 4 5 6 7 8 9 10 11 12 <?php ignore_user_abort(TRUE); //关掉浏览器,PHP脚本也可以继续执行. set_ti ...
- 【POJ 3415】Common Substrings
[链接]h在这里写链接 [题意] 求两个串的长度大于等于k的公共子串个数. 相同的重复计数. [题解] 先把两个字符串用一个分隔符分开.最好比出现的字符都大的一个数字. ...
- 重写ajax方法实现异步请求session过期时跳转登录页面(转)
一般我们会在过滤器里判断登录状态,如果没登录就跳转登录页面,过滤器java核心代码如下: UserItem loginUser = (UserItem)request.getSession().get ...
- spark1.3.1使用基础教程 分类: B8_SPARK 2015-04-28 11:10 1651人阅读 评论(0) 收藏
spark可以通过交互式命令行及编程两种方式来进行调用: 前者支持scala与python 后者支持scala.python与java 本文参考https://spark.apache.org/d ...
- ATL入门
服务端代码----------------------------------------------------------------------------------------------- ...
- 【翻译自mos文章】Clusterware间歇性的hang,命令报CRS-184而且Network Socket Files in /tmp/.oracle or /var/tmp/.oracle被删
来源于: Clusterware Intermittently Hangs And Commands Fail With CRS-184 as Network Socker Files in /tmp ...
- [RxJS] Use RxJS concatMap to map and concat high order observables
Like switchMap and mergeMap, concatMap is a shortcut for map() followed by a concatAll(). In this le ...