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

spark 之数据湖

delta lake

基本使用 可参见: https://docs.delta.io/2.3.0/quick-start.html#language-scala

bin/spark-shell --packages io.delta:delta-core_2.12:2.3.0 --conf "spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension" --conf "spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog"

Note:–packages 会缓存依赖在 本地 ~/.ivy2/cache

$ ll ~/.ivy2/cache/io.delta/delta-core_2.12/jars/delta-core_2.12-2.3.0.jar
-rw-rw-r-- 1 hadoop hadoop 3986365 Apr  5  2023 /home/hadoop/.ivy2/cache/io.delta/delta-core_2.12/jars/delta-core_2.12-2.3.0.jar
val data = spark.range(0, 5)
data.write.format("delta").save("/tmp/delta-table")
val df = spark.read.format("delta").load("/tmp/delta-table")
df.show()
val data = spark.range(5, 10)
data.write.format("delta").mode("overwrite").save("/tmp/delta-table")
df.show()
import io.delta.tables._
import org.apache.spark.sql.functions._val deltaTable = DeltaTable.forPath("/tmp/delta-table")// Update every even value by adding 100 to it
deltaTable.update(condition = expr("id % 2 == 0"),set = Map("id" -> expr("id + 100")))// Delete every even value
deltaTable.delete(condition = expr("id % 2 == 0"))// Upsert (merge) new data
val newData = spark.range(0, 20).toDFdeltaTable.as("oldData").merge(newData.as("newData"),"oldData.id = newData.id").whenMatched.update(Map("id" -> col("newData.id"))).whenNotMatched.insert(Map("id" -> col("newData.id"))).execute()deltaTable.toDF.show()
http://www.lryc.cn/news/352656.html

相关文章:

  • 记录Hbase出现HMaster一直初始化,日志打印hbase:meta,,1.1588230740 is NOT online问题的解决
  • Linux——进程信号(二)
  • 2024.5组队学习——MetaGPT(0.8.1)智能体理论与实战(下):多智能体开发
  • SQL开窗函数
  • [xx点评完结]——白马点评完整代码+rabbitmq实现异步下单+资料,免费
  • Hadoop+Spark大数据技术 实验8 Spark SQL结构化
  • 认知V2X的技术列一个学习大纲
  • 揭秘齿轮加工工艺的选用原则:精准打造高效传动的秘密武器
  • Linux-应用编程学习笔记(二、文件I/O、标准I/O)
  • AI爆文写作:根据别人的爆款标题,如何通过名词替换改成自己的爆款标题?
  • Mybatis源码剖析---第二讲
  • SpringMvc-restful设计风格
  • 在未来你将何去何从?
  • Vue.js组件设计模式:构建可复用组件库
  • 【C语言】指针运算
  • Python学习(3) 函数
  • 计算机网络安全控制技术
  • WordPress插件Disable WP REST API,可根据是否登录来禁用REST API
  • 腾讯云COS上传文件出现的问题
  • 【C++】<知识点> 标准和文件的输入输出
  • 在阿里Anolis OS 8.9龙蜥操作系统安装docker
  • 短剧APP开发,短剧行业发展下的财富密码
  • 简述分代垃圾回收器是怎么工作的?
  • Qt 自定义代理类
  • android GridLayout 布局详解,并举例
  • el-transfer和el-tree进行结合搞一个树形穿梭框
  • 编一个自己的万年历
  • Golang gin框架中间件c.JSON返回结果后终止返回
  • 码蹄集部分题目(2024OJ赛16期;单调栈集训+差分集训)
  • 安卓玩机搞机技巧综合资源----自己手机制作证件照的几种方法 免费制作证件照