sparksql 练习题两道
第一题:
select '{"id":1,"name":{"url":"http://xxx/yyy/zz/test.js"}}'
##1 获取 //xxx/yyy/zz/test.js中的 xxx和 js
##2 获取 ip地址中的第一组数字
#### method 1
select split(get_json_object('{"id":1,"@name":{"url":"/xxx/yyy/zz/test.test_2.js"}}','$.@name.url'),'/')[1] as test,
reverse(split(reverse(get_json_object('{"id":1,"name":{"url":"/xxx/yyy/zz/test.tes-t_2.js"}}','$.name.url')),'\\.')[0]) as test2,
split("12.13.14.15.16","\\.")[0] as ip_first_num;
#### method2
select regexp_extract(get_json_object('{"id":1,"@name":{@url":"/test.test_2.js"}}','$.`@name.url`'),'^/([^/]+)/') as test,
regexp_extract(get_json_object('{"id":1,"name":{"url":"/xxx/yyy/zz/test.tes-t_2.js"}}','$.name.url'),"([^\\.]+$)") as test2,
regexp_extract("12.13.14.15.16","([0-9]+)") as ip_first_num;
第二题:
日常工作中,我们常用elasticsearch来存储数据,如果想转移一部分生产上的es某索引到本地或测试环境中,如果使用 sparksql来怎么做?
使用 es官方提供的包,如 elasticsearch-spark-20_2.11xxx.jar 很方便使用 sql来操作 elasticsearch的索引。
######读取elasticsearch索引的数据,并存储为json
import org.elasticsearch.spark.sql
val df = spark.read.format("org.elasticsearch.spark.sql").option("es.nodes","localhost:9200").load("sparksql-test9")
df.write.json("file:///tmp/json")
执行完你会发现 /tmp/json 文件夹下有几个json文件,打开查看
你会发现{} 每一条记录都是doc
#####读取json数据写入到elasticsearch索引中去,测试环境中使用的是spark2.4 es6.8
val json=spark.read.json("tmp/json")
df.write.format("org.elasticsearch.spark.sql").option("es.resource","sparksql-test9/_doc").option("es.nodes","172.17.0.3:9200").mode("Append").save
spark.sql写出的 json文件不适合使curl bulk upload的方式
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/sparksql-test10/_doc/_bulk?pretty' \
--data-binary @part-00000-82438c55-612b-48df-b710-4c896f2e66f3-c000.json
这种方式需要json中有元数据,如文档的id
sparksql 练习题两道的更多相关文章
- ACM/ICPC 之 两道dijkstra练习题(ZOJ1053(POJ1122)-ZOJ1053)
两道较为典型的单源最短路径问题,采用dijkstra解法 本来是四道练习题,后来发现后面两道用dijkstra来解的话总觉得有点冗余了,因此暂且分成三篇博客(本篇以及后两篇). ZOJ1053(POJ ...
- ACM/ICPC 之 欧拉回路两道(POJ1300-POJ1386)
两道有关欧拉回路的例题 POJ1300-Door Man //判定是否存在从某点到0点的欧拉回路 //Time:0Ms Memory:116K #include<iostream> #in ...
- ACM/ICPC 之 Floyd范例两道(POJ2570-POJ2263)
两道以Floyd算法为解法的范例,第二题如果数据量较大,须采用其他解法 POJ2570-Fiber Network //经典的传递闭包问题,由于只有26个公司可以采用二进制存储 //Time:141M ...
- ACM/ICPC 之 SPFA范例两道(POJ3268-POJ3259)
两道以SPFA算法求解的最短路问题,比较水,第二题需要掌握如何判断负权值回路. POJ3268-Silver Cow Party //计算正逆最短路径之和的最大值 //Time:32Ms Memory ...
- 两道二分coming~
第一道:poj 1905Expanding Rods 题意:两道墙(距离L)之间架一根棒子,棒子受热会变长,弯曲,长度变化满足公式( s=(1+n*C)*L),求的是弯曲的高度h. 首先来看这个图: ...
- JAVA算法两道
算法(JAVA)----两道小小课后题 LZ最近翻了翻JAVA版的数据结构与算法,无聊之下将书中的课后题一一给做了一遍,在此给出书中课后题的答案(非标准答案,是LZ的答案,猿友们可以贡献出自己更快 ...
- 两道面试题,带你解析Java类加载机制
文章首发于[博客园-陈树义],点击跳转到原文<两道面试题,带你解析Java类加载机制> 在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题: class Gr ...
- 【转】两道面试题,带你解析Java类加载机制(类初始化方法 和 对象初始化方法)
本文转自 https://www.cnblogs.com/chanshuyi/p/the_java_class_load_mechamism.html 关键语句 我们只知道有一个构造方法,但实际上Ja ...
- leetcode简单题目两道(2)
Problem Given an integer, write a function to determine if it is a power of three. Follow up: Could ...
随机推荐
- 跨域知识(一)——CORS
CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing). 它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从 ...
- swiper踩过的哪些坑
最近,苦恼于各种轮播的需求,每个自己都要自己写,写的挺烦的.终于,在网上发现了swiper插件,发现还是挺实用的,但其中还是踩过了不少的坑,其中有不少都是很简单的问题,但到发现的时候都是花了不少时间, ...
- UDP传输对象--JavaSE考试题
Server.java package com.sxt.udp.object; import java.io.ByteArrayInputStream; import java.io.ObjectIn ...
- phpexcel使用说明1
<?php /** * PHPEXCEL生成excel文件 * @author:firmy * @desc 支持任意行列数据生成excel文件,暂未添加单元格样式和对齐 */ require_o ...
- hdu 2196【树形dp】
http://acm.hdu.edu.cn/showproblem.php?pid=2196 题意:找出树中每个节点到其它点的最远距离. 题解: 首先这是一棵树,对于节点v来说,它到达其它点的最远距离 ...
- Centos7.3-mysql5.7复制安装过程
一.环境 192.168.56.102 为主服务器 192.168.56.101 为从服务器 Mysql5.7.20 二进制安装包环境 1. 下载免编译安装包并进行安装 从官网下载 mysql-5.7 ...
- HDU 5584 LCM Walk【搜索】
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5584 题意: 分析: 这题比赛的时候卡了很久,一直在用数论的方法解决. 其实从终点往前推就可以发现, ...
- Spring读取mybatis在多个jar包下的的mapper文件
刚开始的时候我的配置文件在同名目录下都是在/mapper下,导致只能读取一个jar中的mapper文件.先解决如下: 1.将mapper文件放在不能放在同名的目录下. 比如:user. ...
- Python从文件中读取内容,包含中文和英文
读取文件内容使要和保存文件时的格式一致 以UTF-8格式保存文件,如: 读取: 在.py起始行写入:#-*- coding:utf-8 -*- filename = raw_input(u" ...
- Android 高仿QQ滑动弹出菜单标记已读、未读消息
在上一篇博客<Android 高仿微信(QQ)滑动弹出编辑.删除菜单效果,增加下拉刷新功能>里,已经带着大家学习如何使用SwipeMenuListView这一开源库实现滑动列表弹出菜单,接 ...