pandas astype、去重保留最大值;hive regexp_extract;pyspark agg、log、to_timestamp、unionByName

1、pandas astype

报错 Cannot convert non-finite values (NA or inf) to intege
解决方法:去掉含有0和na的行

df111_2 = df111_2.drop(df111_2[df111_2["dnum"]==0].index)
df111_2=df111_2[df111_2['dnum'].notna()]

df111_2[“dnum”] = df111_2[“dnum”].astype(int)

去重保留最大值

df.sort_values("Value", ascending = False).drop_duplicates(subset=["Date", "id"], keep="first")

2、hive regexp_extract

正则匹配
参考:https://blog.csdn.net/qq_30331643/article/details/93051421

regexp_extract
语法:    regexp_extract(string subject,  string pattern,  int index)

返回值: string

说明:  将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。

第一参数:   要处理的字段

第二参数:    需要匹配的正则表达式

第三个参数:

0是显示与之匹配的整个字符串
1 是显示第一个括号里面的
2 是显示第二个括号里面的字段
select

regexp_extract('x=a3&x=18abc&x=2&y=3&x=4','x=([0-9]+)([a-z]+)',0),  -- x=18abc
select
regexp_extract(log_json,'"dnum":"([^"]+)',1) as dnum,
count(*)
from **表*
where imp_date = '20211026'
group by dnum
order by count(*) desc
;

3、pyspark agg、log、to_timestamp

参考:https://www.baidu.com/link?url=EJtscaGCmxoYwZICFtdGFhYxAakHTXXJWPX9ijnYyMRPQ4rBlhZUwjTC2Eng9uQA&wd=&eqid=a6ddd83300034b8900000006617a8bef

import pyspark.sql.functions as F

df1=df.groupby("aid").agg(F.count('finish_rate').alias("count_finish_rate"),F.sum('finish_rate').alias("sum_finish_rate"))

df1=df1.withColumn("avg_finish_rate", F.col("sum_finish_rate")/F.col("count_finish_rate"))

df1=df1.withColumn("aid_score", F.col("avg_finish_rate")*F.log(F.col("count_finish_rate")+1))

to_timestamp可以把字符串时间转化为hive时间格式

import pyspark.sql.functions as F

df1 = df1.withColumn("datetime",F.lit("2021-10-18"))
df1 = df1.withColumn('n_datetime2', F.to_timestamp(F.col('datetime'),"yyyy-MM-dd"))

分时间分区保存

import pyspark.sql.functions as F
df1 = df1.withColumn("year", F.year(F.col("n_datetime2")))
df1 = df1.withColumn("month", F.month(F.col("n_datetime2")))
df1 = df1.withColumn("day", F.dayofmonth(F.col("n_datetime2")))

 df1.write.mode("append").partitionBy(["year","month","day"]).parquet("/data/loong/aid_score1")

pandas astype、去重保留最大值;hive regexp_extract;pyspark agg、log、to_timestamp、unionByName

去重保留最大值

 df.groupBy("year", "month", "day", "is_night", "dnum", "aid").agg(F.max("finish_rate").alias("finish_rate"),
                                                                              F.max("played_duration").alias(
                                                                                  "played_duration"))

import pandas as pd

定义原始数据
data = [
    {"name": "Tom", "department": "Sales", "age": 25},
    {"name": "John", "department": "Sales", "age": 30},
    {"name": "Jane", "department": "Marketing", "age": 35},
    {"name": "Alice", "department": "Marketing", "age": 40},
]

将数据转换为数据框
df = pd.DataFrame(data)

按照部门进行分组,并保留每个部门中年龄最小的人员信息
df_min = df.groupby("department").agg({"age": "min"})

使用reset_index方法重置索引,将多行列名改为单行
df_min = df_min.reset_index()

显示结果
print(df_min)


df.sort_values('r_i_docking_score', ascending=False).drop_duplicates(subset=['s_m_title'], keep='first')

&&pyspark dataframe多个合并
unionByName

df1 = spark.createDataFrame([[1, 2, 3]], ["col0", "col1", "col2"])
df2 = spark.createDataFrame([[4, 5, 6,7]], ["col1", "col2", "col0","col3"])
df1.unionByName(df2).show()

from functools import reduce
dff=[]
    for ii in range(10):
         ******
         *****
        dff.append(df1)

merge_df = reduce(lambda x,y:x.union(y),dff)
play_video_df = None
for i in range(args.range):
    t = target_date - datetime.timedelta(days=i)
    temp_df  = spark.sql("select * from g*** where year=%s and month=%s and day=%s" %(t.year,t.month,t.day))

    if play_video_df == None:
        play_video_df = temp_df
    else:
        play_video_df = play_video_df.unionByName(temp_df)

Original: https://blog.csdn.net/weixin_42357472/article/details/121013798
Author: loong_XL
Title: pandas astype、去重保留最大值;hive regexp_extract;pyspark agg、log、to_timestamp、unionByName

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/738261/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 在阿里云服务器部署flask项目(从0开始)

    目录 在阿里云服务器部署flask项目 第一步:创建个阿里云服务器(我配置的系统是ubantu20.04) 连接远程服务器(我用的是finalShell3.9) 第二步:安装ngi…

    Python 2023年8月12日
    043
  • numpy之多维数组

    文章目录 一、生成ndarray 二、ndarray的数据类型 三、索引和切片 * 3.1 一维数组的索引 3.2 多维数组的索引 3.3 布尔索引 NumPy的核心特征之一就是N…

    Python 2023年8月24日
    041
  • 笔记:Numpy

    Numpy 文章目录 Numpy * 一、如何使用Numpy – 1. 导入Numpy 2. 创建数组函数 3. 关于数组的一些操作 + 数组的相关信息 数据类型 生成…

    Python 2023年8月27日
    054
  • 谈谈自己的理解:python中闭包,闭包的实质.

    如果我们在一个函数的内部定义另一个函数,我们在外部称为外部函数,在内部称为内部函数。 [En] If we define another function on the insid…

    Python 2023年5月25日
    065
  • Python学习笔记(5) NumPy数值计算基础2

    利用Numpy进行统计分析 1 排序 1.1 直接排序:sort函数 arr.sort() 默认为axis=-1为沿着最后一个轴排列,axis=0 横轴, axis=4纵轴。 1….

    Python 2023年8月27日
    050
  • Python代码阅读(第45篇):柯里化

    本篇阅读的代码实现了将函数柯里化的功能。 在计算机科学中,柯里化(英语:Currying),又译为卡瑞化或加里化,是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数…

    Python 2023年6月15日
    069
  • django入门教程

    django入门教程 django的安装与运行 url路由设置 创建数据库和表 对资源的增、删、改、 查 登录退出的实现 分页和过滤 部署 django的安装与运行 安装djang…

    Python 2023年8月4日
    058
  • 软件测试 git和gitee集成Pycharm 基于Flask的Mock Server服务器

    文章目录 * – 1 Git – + 1.1 作用 + 1.2 工具 + 1.3 名称解释 – 2 安装git和注册Gitee – …

    Python 2023年8月15日
    064
  • tick_params()–matplotlib

    函数功能 改变刻度、刻度标签、网格线的外观 2.函数语法 plt.tick_params(axis=’both’,which=’major’,reset=False,**kwarg…

    Python 2023年9月3日
    051
  • Pandas 模块-操纵数据(3)-iteration 遍历

    目录 3. DataFrame 类型的遍历过程 3.1 按行遍历 DataFrame.iterrows() 3.1.1 DataFrame.iterrows() 语法 3.1.2 …

    Python 2023年8月17日
    051
  • Django Admin的初步使用

    Django Admin的初步使用 创建管理员用户 命令行输入python manage.py createsuperuser 按提示输入 用户名 邮箱地址 密码 浏览器输入htt…

    Python 2023年8月4日
    044
  • WPF+ASP.NET SignalR实现简易在线聊天功能

    在实际业务中,当后台数据发生变化,客户端能够实时的收到通知,而不是由用户主动的进行页面刷新才能查看,这将是一个非常人性化的设计。有没有那么一种场景,后台数据明明已经发生变化了,前台…

    Python 2023年6月10日
    080
  • 俄罗斯联邦发布第1249号法令简化进口和标签要求

    2022 年7 月22 日,俄罗斯联邦政府发布了第1249 号法令”关于353 号法令附件18 的修正”,该法令已于发布后立即生效。该法令简化对于产品的进口…

    Python 2023年10月25日
    035
  • excel中图表无法编辑的解决办法

    在多人协同办公的情况下,有些表格往往会设置为共享编辑模式,此时会发现sheet页中的的图表却无法编辑或者操作 解决办法: 1、打开【共享工作簿】 2、取消勾选【允许多用户同时编辑,…

    Python 2023年6月11日
    0394
  • scrapy异步写入mysql_scrapy之异步写入数据库

    1 setting.py文件,写入数据库连接属性# mysql连接属性 MYHOST = ‘127.0.0.1’ MYUSER = ‘root&…

    Python 2023年10月5日
    043
  • 数据挖掘-模型怎么解决业务需求(五)

    🤵‍♂️ 个人主页:@Lingxw_w的个人主页✍🏻作者简介:计算机科学与技术研究生在读🐋 希望大家多多支持,我们一起进步!😄如果文章对你有帮助的话,欢迎评论 💬点赞👍🏻 收藏 📂…

    Python 2023年10月10日
    067
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球