码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • AWS Athena SQL基础知识


    一、Athena SQL 基础学习🍜


    1 获取一年的第几周
    select Extract(week from date'2022-12-11') as week_number
    Extract(week(Sunday) from date) as week_number
    
    • 1
    • 2
    2 Int to Date
    select date_parse(concat(substr(cast(20221214 as varchar), 1, 4),'-',substr(cast(20221121 as varchar), 5, 2),'-',substr(cast(20221121 as varchar), 7, 2)),'%Y-%m-%d')
    
    • 1
    3 根据日期得出周几
    SELECT format_datetime(day, 'EEEE')
    FROM (
      VALUES DATE '2022-12-14'
    ) t(day)
    
    • 1
    • 2
    • 3
    • 4
    4 weekofyear()✨dayofweek
    weekofyear:周一到周日
    dayofweek :周日到周六 1~7
    
    • 1
    • 2
    5 创建临时数据,遍历数组
    WITH
    dataset AS (
      SELECT ARRAY
      [
        ARRAY[1,2,3,4],
        ARRAY[5,6,7,8],
        ARRAY[9,0]
      ] AS items
    ),
    item AS (
      SELECT i AS array_items
      FROM dataset, UNNEST(items) AS t(i)
    )
    SELECT array_items, reduce(array_items, 0 , (s, x) -> s + x, s -> s) AS total
    FROM item;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    6 url解析
    url_extract_parameter(url,'utm_source')='Event'
    
    • 1
    7 Athena表元数据信息修复
    MSCK REPAIR TABLE traffic.hive_traffic_detail
    
    • 1
    8 Athena中对跨年周进行处理
    select date_format(date '2023-01-01', '%x-%v')
    
    • 1
    9 Athena解析URL函数url_extract_parameter
    select user_id,time,device_id,url,
           url_extract_parameter(url,'utm_source') utm_source,
    
    • 1
    • 2
    10 QS获取近两个月数据
    select * from default.hive_lkb_lock_stock_report where dt >= date_format(date_add('Month',-2,current_timestamp),'%Y%m%d')
    
    • 1
    11 Athena转义字符:’

    三、Spark调优

    选择以下解决方案之一:
    
    选项 1.禁用广播加入。
    设置 spark.conf.set("spark.sql.autoBroadcastJoinThreshold", -1)
    
    此选项禁用广播加入。
    
    选项 2.增加广播超时。
    将 Spark.sql.broadcastTimeout 增加到 300 以上的值。例如,设置 spark.sql.broadcastTimeout=2000。
    
    不太推荐此选项。如果要保留广播加入,请使用此选项。
    
    选项 3.再次尝试失败的应用程序。
    设置 spark.yarn.maxAppTrys=2。
    
    最不推荐此选项。设置上述属性时,Spark 会尝试再次运行任何失败的应用程序,包括不使用广播联接的应用程序。此更改会导致较高的总体运行时间。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    1 表JOIN
    • 使用join事,on条件尽可能避免使用or这种条件关联,效率极慢,可以通过先单独join再union的方式拼接的方式要快很多~

    持续更新中…

  • 相关阅读:
    【计算机网络】计网常见面试题总结
    计算机毕业设计 SSM人事管理系统 企业人事管理系统 人事管理信息系统Java Vue MySQL数据库 远程调试 代码讲解
    找不到类org.springframework.cloud.client.loadbalancer.LoadBalanced
    URLSearchParams快速解析URL查询参数
    深度学习基础之过拟合、欠拟合问题和正则化
    大坝安全监测站 一体式监测站
    【前端知识之JS】[‘1‘,‘2‘,‘3‘].map(parseInt) 输出什么?为什么?
    数据结构-考研-第八章——排序(各种算法总结 + 动态演示)
    第六章 Spring(IOC/DI)依赖注入(配置文件)
    Mybatis的mapper.xml批量插入、修改sql
  • 原文地址:https://blog.csdn.net/llAl_lAll/article/details/132790423
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号