PySparkSQL之PySpark解析Json集合数据

数据样本

12341234123412342|asefr-3423|[{"name":"spark","score":"65"},{"name":"airlow","score":"70"},{"name":"flume","score":"55"},{"name":"python","score":"33"},{"name":"scala","score":"44"},{"name":"java","score":"70"},{"name":"hdfs","score":"66"},{"name":"hbase","score":"77"},{"name":"qq","score":"70"},{"name":"sun","score":"88"},{"name":"mysql","score":"96"},{"name":"php","score":"88"},{"name":"hive","score":"97"},{"name":"oozie","score":"45"},{"name":"meizu","score":"70"},{"name":"hw","score":"32"},{"name":"sql","score":"75"},{"name":"r","score":"64"},{"name":"mr","score":"83"},{"name":"kafka","score":"64"},{"name":"mo","score":"75"},{"name":"apple","score":"70"},{"name":"jquery","score":"86"},{"name":"js","score":"95"},{"name":"pig","score":"70"}]

正菜:

#-*- 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 jsonif __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 keyworddef 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"

数据结果

转载于:https://www.cnblogs.com/RzCong/p/11094784.html

spark- PySparkSQL之PySpark解析Json集合数据相关推荐

  1. 对JavaScript解析JSON格式数据的理解

    对JavaScript解析JSON格式数据的理解 一.JSON与JavaScript对象的关系 1,JSON的由来: 在21世纪初,Douglas Crockford(Web开发领域最知名的技术权威之 ...

  2. python中json模块_Python使用内置json模块解析json格式数据的方法

    本文实例讲述了Python使用内置json模块解析json格式数据的方法.分享给大家供大家参考,具体如下: Python中解析json字符串非常简单,直接用内置的json模块就可以,不需要安装额外的模 ...

  3. js读取解析JSON类型数据【申明:来源于网络】

    js读取解析JSON类型数据[申明:来源于网络] 地址:http://blog.csdn.net/sunhuaqiang1/article/details/47026841 转载于:https://w ...

  4. php使用 js格式解析,JavaScript解析JSON格式数据的方法示例

    本文实例讲述了JavaScript解析JSON格式数据的方法.分享给大家供大家参考,具体如下: 1.使用JavaScript提供的eval()函数function JsonText1() { var ...

  5. JavaScript解析json格式数据简单示例

    JavaScript解析json格式数据简单示例 本文通过for循环来获取json结点数据,需要的朋友可以参考以下这串json数据用来存储预加载的图片路径: 代码如下: var imgData = [ ...

  6. 【Python使用】Python解析JSON数据的基本方法/用MATLAB解析json格式数据

    一 JSON数据格式介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. JSON建构于两种结构:json是Javascript中的对象和数组中的对象, ...

  7. C++解析JSON格式数据

    因为项目原因需要使用VC6.0解析JSON格式数据,这里首先介绍VC6.0编译JSON解析库的步骤. 首先你必须在http://sourceforge.net/projects/jsoncpp/fil ...

  8. json解析函数c语言,C语言解析json类型数据

    转自:http://buluzhai.iteye.com/blog/845404   首先感谢作者!! 先看json的数据结构 c中没有对象,所以json数据是采用链表存储的 C代码如下: typed ...

  9. js读取解析JSON类型数据

    2019独角兽企业重金招聘Python工程师标准>>> 一.什么是JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独 ...

最新文章

  1. 乾颐堂军哥HCIE5-OSPF的NSSA区域细节和中间系统到中间系统基础
  2. 函数的重载与 泛型(generic)有什么不同?
  3. 删除计算机系学生的选课记录6,天津理工大学+数据库实验二.doc
  4. #define与typedef的区别!
  5. 2264: sequence(KMP)
  6. Silverlight学习日记(三)
  7. 使用一个程序同时启动多个程序(c#)
  8. SHELL中的引用之引用变量
  9. 如何在Android上创建透明活动?
  10. py2exe使用方法 (含一些调试技巧,如压缩email 类)(转)
  11. 四大门户金融业务接连中招,流量这把钥匙正被氧化
  12. 中科院分区和JCR分区查询
  13. web技术分享| WebRTC控制摄像机平移、倾斜和缩放
  14. 解决IE浏览器的Automation 服务器不能创建对象的问题
  15. 计算机原理图及接线图讲解,信号继电器的工作原理和作用以及接线图
  16. python三维数组读取图片_python读取图片的方式,以及将图片以三维数组的形式输出方法...
  17. 用python写作文_Python3实现写作
  18. Java数字图像处理基础-------Java Swing简单使用,图形绘画---画五角星
  19. 混合正弦余弦算法和Lévy飞行的麻雀算法
  20. 我的世界我服务器注册密码大全,网易账号密码大全我的世界 | 手游网游页游攻略大全...

热门文章

  1. 【bzoj1070】[SCOI2007]修车 最小费用流
  2. Flask-login Question
  3. UBUNTU adb连接android设备
  4. C#内容分页简单实现代码及祥解
  5. Linux下的阻塞(Block)
  6. DataGridView 密码列(显示为*号)的设置
  7. 网上几种常见校验码图片分析
  8. 仔细选择会话状态提供程序
  9. 调试Tomcat源码
  10. vs2008中常见错误解决方法汇总