- 博客(95)
- 收藏
- 关注
原创 SQL实现最近一个周日的date
select date_sub(from_unixtime(unix_timestamp(),'yyyy-MM-dd'), if(pmod(datediff(from_unixtime(unix_timestamp(),'yyyy-MM-dd'), '2019-05-05'), 7) = 0,7,pmod(datediff(from_unixtime(unix_timestamp(),'yyyy-MM-dd'), '2019-05-05'), 7))) as sun
2021-04-09 16:48:08
323
原创 java字节转码,Shift_JIS转UTF8
public static void read(String path,String path1){ File file = new File(path); File file1 = new File(path1); int rownum = 1; String row; try { Buff...
2019-10-30 13:10:38
3847
原创 spark.read.option(jdbc)参数
Property Name Meaning url The JDBC URL to connect to. The source-specific connection properties may be specified in the URL. e.g.,jdbc:postgresql://localhost/test?user=fred&password=secre...
2019-10-25 14:45:42
5586
原创 spark列转行
val tag = spark.sql("select id,k,v from table") val ks= tag.select("k").map(row => row.getAs[String]("k")).distinct().collect().sorted.toList tag.groupBy("id").pivot("k", labelnames).agg(max("v...
2019-06-13 15:32:41
720
原创 hive解析json
select get_json_object('{"shop":{"book":[{"price":43.3,"type":"art"},{"price":30,"type":"technology"}],"clothes":{"price":19.951,"type":"shirt"}},"name":"jane","age":"23"}', '$.shop.book[0].type')
2019-05-28 13:47:54
412
原创 csv单元格存在引号引起多引号
处理方式如下:regexp_replace(regexp_replace(field,'(?<=^)\"|\"(?=$)',''),'\"\"','\"') as field分析:可以用notepad++打开观察
2019-05-23 18:43:29
1498
原创 count(字段)该字段存有null值,空字符串对结果的影响
SELECTcount(id) as id,count(distinct id) as ids_id,count(id1) as id1,count(distinct id1) as ids_id1 ,count(name) as name1,count(distinct name) as ids_name1from(SELECT '2' as idunion allSEL...
2019-05-06 18:15:07
4196
原创 hive拼接两个字段组成json
hive拼接两个字段,一个字段值作为K,另一个字段值作为V,id不唯一,将多行组成json串selectid,concat('{', regexp_replace(cast(sort_array(collect_set(kv)) as string),'(\"\":\"0\"\,)|\\[|\\]','') ,'}') kv from(select id,concat(conc...
2019-04-12 11:29:39
8589
原创 spark.read.jdbc 并发设置
1. 通过predicates设置读取并行度,如果只是spark.read.jdbc(mySqlHelper.url,mysql_table,predicates,mySqlHelper.prop),则并行的是1. val ip = "" val user = "" val database = "" val password = "" val mySq...
2019-01-15 18:06:02
4998
原创 开窗函数以及code实现
/** * Created by Administrator on 2018/9/4. * * 总结如下: * preceding:用于累加前N行(分区之内)。若是从分区第一行头开始,则为 unbounded。 N为:相对当前行向前的偏移量 * following :与preceding相反,累加后N行(分区之内)。若是累加到该分区结束,则为 unbounded。N为:相...
2019-01-09 17:12:39
385
原创 rollup和cube区别(基于spark sql)以及用dataFrame代码实现
1. rollup前后对比前:|pcode|event_date|duration| +-----+----------+--------+| 1|2018-09-02| 3| | 1|2018-09-03| 2|| 1|2018-09-04| 1|...
2019-01-09 16:55:41
2104
原创 Structured Streaming之outputMode(complete和append)区别说明
1.complete需要聚合,并将原先批次的数据和本次批次的数据一起聚合,而append是不能聚合的2.若用append替换complete代码演示:def main(args: Array[String]): Unit = { val spark = SparkSession.builder().master("local[1]").getOrCreate() ...
2019-01-04 18:40:48
4720
1
原创 Structured Streaming通过foreach方法向mysql插入数据
1.先写TestForeachWriter需要extends ForeachWriter,代码如下:class TestForeachWriter extends ForeachWriter[Row] with Serializable { var connection:Connection = _ var statement:Statement = _ val ip...
2019-01-04 18:31:20
1861
3
原创 spark读取csv文件,中文乱码,同一单元格同时出现引号逗号(",)串列问题,动态构建原有csv首行schema信息
/** * * @param spark * @param headerSchema 是否用csv第一行作为schema信息 * @param code csv编码格式 * @param file csv绝对路径 * @return */ def readCSV(spark:SparkSessio...
2018-11-15 10:23:48
2699
原创 map(Row(_))错误,需要用Row.fromSeq(_)
val rddRow = rdd.map(Row(_)) spark.createDataFrame(rddRow,schema)Caused by: java.lang.RuntimeException: Error while encoding: java.lang.RuntimeException: [Ljava.lang.String; is not a valid ext...
2018-11-15 10:21:56
3891
1
原创 count(distinct ) over(partition by order by)替换成size(collect_set() over(partition by order by))
这个函数的大致意思是:在分组内求去重后的数量为什么不用count(distinct ),不支持原因例子:数据准备:SELECT '1' as id ,'201808' as m,'a' as kunion allSELECT '2' as id ,'201808' as m,'a' as kunion allSELECT '1' as id ,'201809' as m,'...
2018-09-30 15:32:30
10985
1
原创 rows between unbounded preceding and current row等,unbounded ,preceding ,following,current row含义详解
unbounded:无界限preceding:从分区第一行头开始,则为 unbounded。 N为:相对当前行向前的偏移量following :与preceding相反,到该分区结束,则为 unbounded。N为:相对当前行向后的偏移量current row:顾名思义,当前行,偏移量为0例子:partition by order by asc/desc rows ...
2018-09-30 15:29:52
30856
原创 Spark 将dataFrame 转为 DataSet
一、dataFrame转为DataSet第一种方式:通过classval s = spark.sql( """ |select "1" id,1.1 f2,1.2 f3 |union all |select "2" id,1.1 f2,1.1 f3 """....
2018-09-06 16:03:52
1988
1
原创 pyspark An error occurred while calling o30.jdbc. java.lang.ClassNotFoundException: com.mysql.jdbc.
1.pyspark读取mysql错误from pyspark.sql import SparkSessionif __name__ == '__main__': spark = SparkSession.Builder() \ .appName('t') \ .master('local') \ .getOrCreate() ...
2018-07-16 13:32:59
5911
原创 一般maven-repository地址
<repositories> <repository> <id>scala-tools.org</id> <name>Scala-Tools Maven2 Repository</name> <url>http://scala-tools.org/repo-r
2018-06-14 13:55:32
3845
原创 python学习1-斐波那契数列
# 斐波那契def fib(m): n, a, b = 1, 0, 1 while n <= m: print(b) a,b = b,a+b n = n +1fib(10)结果:11235813213455
2018-04-13 11:50:37
524
原创 hive内置函数大全
一、查看函数 show functions 显示hive下内置所有函数 desc function extended add_months 显示add_months 函数用法二、按首字母排序 hive版本1.1.0-cdh5.7.0.函数 Usage 举例 ! ! a - Logical not No example for !. % a % b ...
2018-03-20 17:11:02
8681
转载 利用hive将数据写入es
转自:https://www.iteblog.com/archives/1858.html在使用前同样需要加入 elasticsearch-hadoop-2.3.4.jar 依赖,具体请参见前文介绍。我们先在Hive里面建个名为iteblog的表,如下:CREATEEXTERNAL TABLEiteblog ( id
2017-11-20 14:47:19
4504
转载 hive读取es数据
转自:https://www.iteblog.com/archives/1857.html 本文将介绍如何通过Hive来读取ElasticSearch中的数据,然后我们可以像操作其他正常Hive表一样,使用Hive来直接操作ElasticSearch中的数据,将极大的方便开发人员。本文使用的各组件版本分别为 Hive0.12、Hadoop-2.2.0、ElasticSearch 2
2017-11-20 14:45:40
3218
5
原创 sql,hql等join条件字段为null时,易出现错误以及解决办法
1.null=null不成立,null2.运行汇总当字段为null时,出现bug,及解决思路join的字段为null,不会出现p1.id=p2.idmysql> select * from yunxing_huizong;+------+------+------+| id | cost | year |+------+------+------+| 1
2017-11-17 17:46:16
6630
转载 Hive分析窗口函数 LAG,LEAD,FIRST_VALUE,LAST_VALUE
转自:http://lxw1234.com/archives/2015/04/190.htm数据准备:cookie1,2015-04-10 10:00:02,url2cookie1,2015-04-10 10:00:00,url1cookie1,2015-04-10 10:03:04,1url3cookie1,2015-04-10 10:50:05,url6cookie1,2015
2017-11-16 15:56:58
702
原创 reduce,aggregate和groupBy
官网说明:groupBy:This operation may be very expensive. If you are grouping in order to perform anaggregation (such as a sum or average) over each key, using `PairRDDFunctions.aggregateByKey`or `Pa
2017-11-16 15:12:42
573
转载 Spark性能相关参数配置及原理
转自:http://blog.csdn.net/ZYC88888/article/details/78531462Spark性能相关参数配置¶http://spark-config.readthedocs.io/en/latest/#概述随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 在Spark的官方文档http://sp
2017-11-16 15:04:57
416
原创 redis操作以及5种数据类型string,hash,list,set,zset
Redis支持五种数据类型:查看key的类型(String,hash...)命令:type keystring(字符串)设置一个值:set命令set name hadoop在设置的时候可以指定当前key的过期时间set key value EX seconds ---->指定key之后seconds的存活时间,seconds之后消失获取一个值:get命令GETR
2017-10-15 18:00:24
1307
原创 redis简介及安装(集群)
1.简介Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。 简言之,Redis是一
2017-10-15 17:54:35
361
原创 hbase行健设计原则
行健的设计问题行健的热点问题是由于行健相似、连续且数据量过大操作成单region的数据量过大,进而影响读写效率行健应该尽量的随机、不要出现连续行健。常见的行健设计就是,比如手机号码倒置+时间戳,比如随机前缀+关系型数据库中的主键(以存放在mr中电信日志案例为例)因为hbase提供的查询内容非常非常low,但是所有关于hbase的查询只能通过rowkey,所以在设计行
2017-10-15 17:51:53
2844
原创 HBase和Phoenix的整合
安装Phoenix约定安装到/opt目录下面解压:soft]# tar -zxvf phoenix-4.7.0-HBase-1.1-bin.tar.gz -C ../重命名 opt]# mv phoenix-4.7.0-HBase-1.1 phoenix拷贝lib目录下面jar包到regionserver机器的lib($HBASE_HOME/lib)目录phoenix]#
2017-10-15 17:48:58
2062
原创 使用Hive来访问HBase
启动hive,进入hive的终端hive --auxpath /opt/hive/lib/hive-hbase-handler-2.1.0.jar,/opt/hive/lib/zookeeper-3.4.6.jar --hiveconf hbase.master=hadoop01:16010 --hiveconf hbase.zookeeper.quorum=hadoop01,hadoop02
2017-10-15 17:46:47
1334
原创 读取hive文件并将数据导入hbase
转:http://www.cnblogs.com/zhanggl/p/5658517.htmlpackage cn.tansun.bd.hbase;import java.io.IOException;import java.net.URI;import java.util.List;import java.util.Map;import org.apache.hado
2017-10-15 17:41:13
1303
转载 Spark上通过BulkLoad快速将海量数据导入到Hbase
转:https://www.iteblog.com/archives/1891.html我们在《通过BulkLoad快速将海量数据导入到Hbase[Hadoop篇]》文中介绍了一种快速将海量数据导入Hbase的一种方法,而本文将介绍如何在Spark上使用Scala编写快速导入数据到Hbase中的方法。这里将介绍两种方式:第一种使用Put普通的方法来倒数;第二种使用Bulk Load
2017-10-15 15:43:24
1276
转载 Java/大数据常见面试
1-3)java 的io类的图解 1-4)对象与引用对象的区别对象就是好没有初始化的对象,引用对象即使对这个对象进行了初始化,这个初始化可以使自己的直接new的也可以是直接其他的赋值的,那么背new或者背其他赋值的我们叫做是引用对象,最大的区别于 1-5)谈谈你对反射机制的理解及其用途?反射有三种获取的方式,分别是:forName / getClass / 直接使用c
2017-10-15 14:47:26
8504
转载 海量数据处理-分而治之和hash映射
转:http://blog.csdn.net/yangquanhui1991/article/details/52172768什么是Hash Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的
2017-10-15 11:56:23
429
原创 海量数据去重之SimHash算法简介和应用
转:http://blog.csdn.net/u010454030/article/details/49102565SimHash是什么SimHash是Google在2007年发表的论文《Detecting Near-Duplicates for Web Crawling 》中提到的一种指纹生成算法或者叫指纹提取算法,被Google广泛应用在亿级的网页去重的Job中,作为l
2017-10-15 11:54:21
1105
转载 MapReduce+HDFS,海量数据去重的五大策略
随着存储数据信息量的飞速增长,越来越多的人开始关注存储数据的缩减方法。数据压缩、单实例存储和重复数据删除等都是经常使用的存储数据缩减技术。重复数据删除往往是指消除冗余子文件。不同于压缩,重复数据删除对于数据本身并没有改变,只是消除了相同的数据占用的存储容量。重复数据删除在减少存储、降低网络带宽方面有着显著的优势,并对扩展性有所帮助。举个简单的例子:在专门为电信运营商定制的呼叫详单去
2017-10-15 11:51:46
483
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人