spark sql 查询hive表并写入到PG中
import java.sql.DriverManager
import java.util.Properties import com.zhaopin.tools.{DateUtils, TextUtils}
import org.apache.log4j.{Level, Logger}
import org.apache.spark.sql.SparkSession /**
* Created by xiaoyan on 2018/5/21.
*/
object IhrDownloadPg {
def main(args: Array[String]){
//设置spark日志级别
Logger.getLogger("org.apache.spark").setLevel(Level.ERROR)
System.setProperty("HADOOP_USER_NAME","hive")
val spark = SparkSession
.builder()
.master("local[*]")
.appName("hive ->> ihr_oper_download")
.config("spark.sql.warehouse.dir", "spark-warehouse")
.config("hive.metastore.uris", "thrift://master:9083")
.enableHiveSupport()
.getOrCreate()
import spark.sql val dt = if(!args.isEmpty) args(0) else "20180506"
val yesterday = DateUtils.dateAdd(dt, -1) val url = "jdbc:postgresql://192.168.9.222:5432/safe_base"
Class.forName("org.postgresql.Driver")
val conn = DriverManager.getConnection(url,"secu_man","secu_man")
val stmt = conn.createStatement()
stmt.execute("delete from ihr_oper_download where dt = '" + yesterday+"'") //查询RDD
val re1 = sql("select oper_date, " +
" acct_id, " +
" acct_name, " +
" module_name, " +
" oper_desc, " +
" ip, " +
" dt" +
" from safe.fact_ihr_oper_download t " +
" where t.dt > '20180320' and t.dt <"+yesterday+""); val connectionProperties = new Properties()
//增加数据库的用户名(user)密码(password),指定postgresql驱动(driver)
connectionProperties.put("user", "secu_man");
connectionProperties.put("password", "secu_man");
connectionProperties.put("driver", "org.postgresql.Driver");
re1.toDF().write.mode("append").jdbc(url, "ihr_oper_download", connectionProperties);
System.err.print("ihr_oper_download insert complete!! ");
}
}
注意:如果PG表不存在,默认会自动创建一张表,且字段类型为text
spark sql 查询hive表并写入到PG中的更多相关文章
- 大数据技术之_19_Spark学习_03_Spark SQL 应用解析 + Spark SQL 概述、解析 、数据源、实战 + 执行 Spark SQL 查询 + JDBC/ODBC 服务器
第1章 Spark SQL 概述1.1 什么是 Spark SQL1.2 RDD vs DataFrames vs DataSet1.2.1 RDD1.2.2 DataFrame1.2.3 DataS ...
- spark2.3.0 配置spark sql 操作hive
spark可以通过读取hive的元数据来兼容hive,读取hive的表数据,然后在spark引擎中进行sql统计分析,从而,通过spark sql与hive结合实现数据分析将成为一种最佳实践.配置步骤 ...
- Spark SQL with Hive
前一篇文章是Spark SQL的入门篇Spark SQL初探,介绍了一些基础知识和API,可是离我们的日常使用还似乎差了一步之遥. 终结Shark的利用有2个: 1.和Spark程序的集成有诸多限制 ...
- SQL查询每个表的字段数量
--SQL查询每个表的字段数量select b.[name], count(*) As AllCount,ISNULL(ISNULL(sum(case when isnullable=0 then 1 ...
- Hibernate原生SQL查询多表关联,SQL语句要注意的问题
Hibernate原生SQL查询多表关联,SQL语句要注意的问题 @for&ever 2009-9-4 系统环境: MySQL5.1 Hibernate3.3 有如下的假定: 实体类 Ques ...
- SQL 查询横表变竖表
SQL 查询横表变竖表 /*普通行列转换 假设有张学生成绩表(tb)如下:Name Subject Result张三 语文 74张三 数学 83张三 物理 93李四 语文 74李四 数学 84李四 ...
- [数据库] SQL查询语句表行列转换及一行数据转换成两列
原文来自:http://blog.csdn.net/Eastmount/article/details/50559008 本文主要讲述了SQL查询语句表之间的行列转换,同时也包括如何将一行数据转换成两 ...
- SQL查询一个表中类别字段中Max()最大值对应的记录
SQL查询一个表中类别字段中Max()最大值对应的记录 SELECT A.id, A.name, A.version FROM DOC A, (SELECT id, MAX(version) ...
- spark sql数据源--hive
使用的是idea编辑器 spark sql从hive中读取数据的步骤:1.引入hive的jar包 2.将hive-site.xml放到resource下 3.spark sql声明对hive的支持 案 ...
随机推荐
- 状态压缩 hdu #10
You are playing CSGO. There are n Main Weapons and m Secondary Weapons in CSGO. You can only choose ...
- python小知识点总结
小知识点总结 1.python2和python3的区别 python2 python3 默认编码 ascii utf-8 input() raw_input() input() print 可以不 ...
- 7.JavaSE之类型转换
类型转换: 由于Java是强类型语言,所以要进行运算的时候,需要用到类型转换. 图中优先级从低到高,小数优先级大于整数. 运算中,不同类型的数据需要转换为同一类型,然后进行运算. 强制类型转换:(类型 ...
- Java入门 - 语言基础 - 20.Stream和File和IO
原文地址:http://www.work100.net/training/java-stream-file-io.html 更多教程:光束云 - 免费课程 Stream和File和IO 序号 文内章节 ...
- mysql本地连接远程连接不上
首先测试linux下的端口有没有开通 /etc/init.d/iptables status 查看3306端口没有开通 使用以下命令开通 /sbin/iptables -I INPUT -p tcp ...
- 利用Springmvc的AbstractXlsxView下载Excel文件
设计一个模型,在针对多中数据类型进行拓展 public abstract class ExcelView extends AbstractXlsxView { public CellStyle cel ...
- 【java基础】String、StringBuilder和StringBuffer的区别
关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.三者在执行速度方面的比较:StringBuilder > String ...
- 关于PDF阅读器
获取流程 1.点击下载xodo 2.跳转到如下界面,单击箭头所指的版本: 3.单击转到 中国-中文 4.点击获取 5.在跳出来的界面点击红框 6.打开本机的Microsoft Store下载应用 介绍 ...
- python接口自动化测试 - configparser配置文件解析器详细使用
configparser简介 ConfigParser模块已在Python 3中重命名为configparser 该模块定义了ConfigParser类. ConfigParser类实现一种基本的配置 ...
- 创建dynamics CRM client-side (十) - 用JS来获取form type
用户可以用以下代码来获取 form type 更多的信息可以查阅https://docs.microsoft.com/en-us/powerapps/developer/model-driven-ap ...