当前位置: 首页 > news >正文

spark-sql 备忘录

wordcount

sc.textFile("../data/data.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

读取json 文件 并通过sql 执行 join 查询

public static void main(String[] args) {SparkSession session = SparkSession.builder().master("local").appName("master").getOrCreate();Dataset<Row> df = session.read().json("./data/user2.json");
//        json.show();df.createOrReplaceTempView("user");Dataset<Row> df2 = session.read().json("./data/dept.json");df2.createOrReplaceTempView("dept");Dataset<Row> result = session.sql("select u.id,u.name,d.name dname from user u left join dept d" +" on u.deptno= d.id" +"");
//        result.show();
//        result.collectAsList().forEach(System.out::println);result.write().csv("data/result2");session.close();}

jdbc  导出csv

public static void main(String[] args) {SparkSession session = SparkSession.builder().master("local").appName("master").getOrCreate();Properties connectionProperties = new Properties();connectionProperties.put("user", "root");connectionProperties.put("password", "root");Long start = System.currentTimeMillis();Dataset<Row> report = session.read().jdbc("jdbc:mysql://localhost:3306/test","idms_user", connectionProperties).filter("createDate is not null");report.write().option("header", true).mode("overwrite").csv("data/idms_user");long end = System.currentTimeMillis();System.out.println("cost:" + (end - start)+"ms");session.close();}

jdbc  通过sql 查询  函数处理

/*jdbc  通过sql 查询  函数处理
*/ 
public static void main(String[] args) {SparkSession session = SparkSession.builder().master("local").appName("master").getOrCreate();Properties connectionProperties = new Properties();connectionProperties.put("user", "root");connectionProperties.put("password", "root");Long start = System.currentTimeMillis();Dataset<Row> report = session.read().jdbc("jdbc:mysql://localhost:3306/test","report", connectionProperties);report.createOrReplaceTempView("report");Dataset<Row> result = session.sql("select id,date_format(created_at,'yyyy-MM-dd') createDate ,title " +" , date_format(now(),'yyyy-MM-dd') nowDate" +" ,datediff(now(),created_at) days"+" from report where age>12");result.show();session.close();}

http://www.lryc.cn/news/504499.html

相关文章:

  • 基于softmax回归的多分类
  • bs4基本运用
  • MySQL 时区参数 time_zone 详解
  • Redis - 消息队列 Stream
  • Docker:国内加速源
  • Android Studio更改项目使用的JDK
  • ubuntu+ros新手笔记(四):gazebo无法加载
  • vue季度选择器(antd2.0 版本无此控件,单独写一个)
  • C/C++代码性能优化技巧的书籍及资料
  • 通俗易懂的 Nginx 反向代理 配置
  • docker设置容器自动启动
  • 蓝桥杯刷题——day1
  • Leetcode 面试150题 399.除法求值
  • 活动预告 |【Part2】Microsoft 安全在线技术公开课:安全性、合规性和身份基础知识
  • Unity游戏实战
  • SQL中的替换函数replace() 使用
  • Python面试常见问题及答案5
  • (css)element中el-select下拉框整体样式修改
  • 点击按钮打开dialog嵌套表格checked数据关闭dialog回显checked数据
  • 《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(三)
  • 大模型呼出机器人有哪些优势和劣势?
  • Python鼠标轨迹算法(游戏防检测)
  • 安宝特分享 | AR技术助力医院总院与分院间的远程面诊
  • css中的字体单位
  • 如何使用程序查询域名whois信息?(带PHP/C#示例)
  • 在C#中编程绘制和移动线段
  • web自动化测试框架playwright
  • 【报错记录】Ubuntu22.04解决开机卡在 /dev/sda5 : clean , *files , *blocks
  • 【AIGC】如何高效使用ChatGPT挖掘AI最大潜能?26个Prompt提问秘诀帮你提升300%效率的!
  • 免费生成AI PPT产品推荐?