第一题:
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 练习题两道的更多相关文章

  1. ACM/ICPC 之 两道dijkstra练习题(ZOJ1053(POJ1122)-ZOJ1053)

    两道较为典型的单源最短路径问题,采用dijkstra解法 本来是四道练习题,后来发现后面两道用dijkstra来解的话总觉得有点冗余了,因此暂且分成三篇博客(本篇以及后两篇). ZOJ1053(POJ ...

  2. ACM/ICPC 之 欧拉回路两道(POJ1300-POJ1386)

    两道有关欧拉回路的例题 POJ1300-Door Man //判定是否存在从某点到0点的欧拉回路 //Time:0Ms Memory:116K #include<iostream> #in ...

  3. ACM/ICPC 之 Floyd范例两道(POJ2570-POJ2263)

    两道以Floyd算法为解法的范例,第二题如果数据量较大,须采用其他解法 POJ2570-Fiber Network //经典的传递闭包问题,由于只有26个公司可以采用二进制存储 //Time:141M ...

  4. ACM/ICPC 之 SPFA范例两道(POJ3268-POJ3259)

    两道以SPFA算法求解的最短路问题,比较水,第二题需要掌握如何判断负权值回路. POJ3268-Silver Cow Party //计算正逆最短路径之和的最大值 //Time:32Ms Memory ...

  5. 两道二分coming~

    第一道:poj 1905Expanding Rods 题意:两道墙(距离L)之间架一根棒子,棒子受热会变长,弯曲,长度变化满足公式( s=(1+n*C)*L),求的是弯曲的高度h. 首先来看这个图: ...

  6. JAVA算法两道

    算法(JAVA)----两道小小课后题   LZ最近翻了翻JAVA版的数据结构与算法,无聊之下将书中的课后题一一给做了一遍,在此给出书中课后题的答案(非标准答案,是LZ的答案,猿友们可以贡献出自己更快 ...

  7. 两道面试题,带你解析Java类加载机制

    文章首发于[博客园-陈树义],点击跳转到原文<两道面试题,带你解析Java类加载机制> 在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题: class Gr ...

  8. 【转】两道面试题,带你解析Java类加载机制(类初始化方法 和 对象初始化方法)

    本文转自 https://www.cnblogs.com/chanshuyi/p/the_java_class_load_mechamism.html 关键语句 我们只知道有一个构造方法,但实际上Ja ...

  9. leetcode简单题目两道(2)

    Problem Given an integer, write a function to determine if it is a power of three. Follow up: Could ...

随机推荐

  1. Add Binary字符数字相加,字符串合成

    Given two binary strings, return their sum (also a binary string). For example,a = "11"b = ...

  2. core文件相关

    1:当一个程序崩溃时,在进程当前工作目录的core文件中复制了该进程的存储图像.core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的. 当程序接收到以下UNIX信号会产生core文件: ...

  3. 搜索docker镜像

    docker最简单的方式莫过于从现有的容器镜像开始. Docker官方网站专门有一个页面来存储所有可用的镜像,网址是:index.docker.io. 可以通过浏览这个网页来查找你想要使用的镜像,或者 ...

  4. 从 Spark 到 Kubernetes — MaxCompute 的云原生开源生态实践之路

    2019年5月14日,喜提浙江省科学技术进步一等奖的 MaxCompute 是阿里巴巴自研的 EB 级大数据计算平台.该平台依托阿里云飞天基础架构,是阿里巴巴在10年前做飞天系统的三大件之分布式计算部 ...

  5. mysql数据库之单表查询

    单标查询 单表查询语句 关键字执行的优先级 简单查询 where约束 group by 聚合函数 HAVING过滤 order by 查询排序 LIMIT限制查询的记录数 使用正则表达式查询 单表查询 ...

  6. phpstorm 中背景色的调整

  7. jsp中文乱码六种情况---解决方案

    转 jsp中文乱码六种情况---解决方案 2016年10月22日 21:32:55 阅读数:10672 来源:http://blog.csdn.net/lovesummerforever/articl ...

  8. supersockets扩展服务器配置

    关键字: 扩展配置, 自定义配置, 自定义属性, GetChildConfig, 读取配置,子节点 当你使用 SuperSocket 实现 Socket 服务器的时候,不可避免的需要在配置文件中定义一 ...

  9. [转]敏捷开发需求管理(产品backlog)

    传统的瀑布工作模式使用详细的需求说明书来表达需求,需求人员负责做需求调研,根据调研情况编制详细的需求说明书,进行需求评审,评审之后签字确认交给研发团队设计开发.在这样的环境下,需求文档是信息传递的主体 ...

  10. 第25章 Pytorch 如何高效使用GPU

    第25章 Pytorch 如何高效使用GPU 深度学习涉及很多向量或多矩阵运算,如矩阵相乘.矩阵相加.矩阵-向量乘法等.深层模型的算法,如BP,Auto-Encoder,CNN等,都可以写成矩阵运算的 ...