spark- PySparkSQL之PySpark解析Json集合数据
PySparkSQL之PySpark解析Json集合数据
数据样本
12341234123412342|asefr-3423|[{"name":"spark","score":""},{"name":"airlow","score":""},{"name":"flume","score":""},{"name":"python","score":""},{"name":"scala","score":""},{"name":"java","score":""},{"name":"hdfs","score":""},{"name":"hbase","score":""},{"name":"qq","score":""},{"name":"sun","score":""},{"name":"mysql","score":""},{"name":"php","score":""},{"name":"hive","score":""},{"name":"oozie","score":""},{"name":"meizu","score":""},{"name":"hw","score":""},{"name":"sql","score":""},{"name":"r","score":""},{"name":"mr","score":""},{"name":"kafka","score":""},{"name":"mo","score":""},{"name":"apple","score":""},{"name":"jquery","score":""},{"name":"js","score":""},{"name":"pig","score":""}]
正菜:
#-*- coding:utf-8 –*-
from __future__ import print_function
from pyspark import SparkContext
from pyspark.sql import SQLContext
from pyspark.sql.types import Row, StructField, StructType, StringType, IntegerType
import sys
reload(sys)
import json if __name__ == "__main__":
sc = SparkContext(appName="PythonSQL")
sqlContext = SQLContext(sc)
fileName = sys.argv[1]
lines = sc.textFile(fileName)
sc.setLogLevel("WARN") def parse_line(line):
fields=line.split("|",-1)
keyword=fields[2]
return keyword def parse_json(keyword):
return keyword.replace("[","").replace("]","").replace("},{","}|{") keywordRDD = lines.map(parse_line)
#print(keywordRDD.take(1))
#print("---------------") jsonlistRDD = keywordRDD.map(parse_json)
#print(jsonlistRDD.take(1)) jsonRDD = jsonlistRDD.flatMap(lambda jsonlist:jsonlist.split("|")) schema = StructType([StructField("name", StringType()),StructField("score", IntegerType())])
df = sqlContext.read.schema(schema).json(jsonRDD)
# df.printSchema()
# df.show() df.registerTempTable("json")
df_result = sqlContext.sql("SELECT name,score FROM json WHERE score > 70")
df_result.coalesce(1).write.json(sys.argv[2]) sc.stop()
提交作业
spark-submit .\demo2.py "C:\\Users\\txdyl\\Desktop\\test.txt" "c:\\users\\txdyl\\Desktop\\output"
数据结果

spark- PySparkSQL之PySpark解析Json集合数据的更多相关文章
- 解析json格式数据
实现目标 读取文件中的json格式数据,一行为一条json格式数据.进行解析封装成实体类. 通过google的Gson对象解析json格式数据 我现在解析的json格式数据为: {",&qu ...
- json进阶(一)js读取解析JSON类型数据
js读取解析JSON类型数据 一.什么是JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式,同 ...
- js读取解析JSON类型数据(转)
谢谢博主,转自http://blog.csdn.net/beyond0851/article/details/9285771 一.什么是JSON? JSON(JavaScript Object Not ...
- 实现android上解析Json格式数据功能
实现android上解析Json格式数据功能,该源码转载于安卓教程网的,http://android.662p.com ,个人感觉还不错的,大家可以看看一下吧. package com.practic ...
- js读取解析JSON类型数据【申明:来源于网络】
js读取解析JSON类型数据[申明:来源于网络] 地址:http://blog.csdn.net/sunhuaqiang1/article/details/47026841
- Jquery解析Json格式数据
今天稍微学习了一下Json,JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. JSON采用完全独立于语言的 ...
- c# 自定义解析JSON字符串数据
解析json字符串有很多方式, 1 : 在网上下载json解析的dll类库并添加引用, 调用相关方法; 2 : 使用自带类库JavaScriptSerializer的序列号和反序列化; 对于以上两个方 ...
- C# 解析JSON格式数据
JSON简介 JSON(全称为JavaScript ObjectNotation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集.JSON采用完全独立于语言的文本格式,可 ...
- 用GSON解析Json格式数据
GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用.如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的li ...
随机推荐
- 如何在centos7中设置redis服务器开机自启动
1.简单说明centos7系统中有不同类型的程序,一类是操作系统的服务程序,另一类是第三方程序,而redis就是第三方程序,每次关机后开机都要手工重新启动,很麻烦,那么如何把redis设置为开机自启动 ...
- selenium 自动化的坑(4)
今天要讲的坑是....输入框有请求的. 问题是这样的,我们公司的业务有些输入框选项是联想的,这些联想都会发送请求,怎么办呢? 先 正常输入,然后强制等待几秒,最好多等会,谁知道第三方会不会有问题,这里 ...
- Ubuntu下批量使用Tecplot的preplot命令对数据进行处理
首先把.PLT文件后缀批量修改为.dat rename 's/.PLT$/.dat/' *.PLT 对所有.dat文件批量执行preplot find ./ -name "*.dat&quo ...
- [super class]和[self class]
参考: https://www.jianshu.com/p/3f2bcc588b44?utm_campaign=hugo&utm_medium=reader_share&utm_con ...
- nginx之安装
1.简介 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,供俄 ...
- 关于KindEditor编辑器,word文档中的图文全选粘贴,在编辑器中不显示图片的问题
图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码 目前限chrome浏览器使用,但是项目要求需要支持所有的浏览器,包括Windows和macOS系统.没有办 ...
- MapGIS IGServer for java
但是安装完之后,服务里面没有找到igserver服务 IGServer SManager cxf 怎么会找不到类呢?是服务映射出了问题,所以目录找不到.所以怎么配置目录呢?是在xml还是环境变量,还是 ...
- 20180805-Java ByteArrayOutputStream类
下面的例子演示了ByteArrayInputStream 和 ByteArrayOutputStream的使用: import java.io.* public class ByteStreamTes ...
- oracle sql查询表外键关系
SELECT F.TABLE_NAME, F.CONSTRAINT_NAME, F.COLUMN_NAME, F.POSITION, P.TABLE_NAME, P.COLUMN_NAME, P.PO ...
- ubuntu18.04英文环境解决各种软件中文乱码问题
如果要同时支持中文也支持英文,进入到该软件的字体设置界面,字体格式选择为: Noto Sans CJK SC