- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Pyspark 的新手,我需要一些帮助。我有一个 Pyspark 数据框 df1
像下面的一个:
df1 =
|---------------------|------------------|------------------|
| ID_Machine | Event_Duration | Timestamp |
|---------------------|------------------|------------------|
| 1 | 34 | 213 |
|---------------------|------------------|------------------|
| 1 | 97 | 572 |
|---------------------|------------------|------------------|
| 1 | 78 | 872 |
|---------------------|------------------|------------------|
| 2 | 83 | 345 |
|---------------------|------------------|------------------|
| 2 | 14 | 718 |
|---------------------|------------------|------------------|
| 2 | 115 | 884 |
|---------------------|------------------|------------------|
从中,我必须执行
groupBy
使用聚合方法:
import pyspark.sql.functions as F
df2 = df1.groupBy("ID_Machine").agg(F.max("Event_duration").alias("Max_Event_Duration")
从而获得:
df2 =
|---------------------|---------------------------|
| ID_Machine | Max_Event_Duration |
|---------------------|---------------------------|
| 1 | 97 |
|---------------------|---------------------------|
| 2 | 115 |
|---------------------|---------------------------|
到目前为止,一切都很好。但是,现在我想执行某种功能,例如
vlookup
在 Excel 中,我在其中检索
Timestamp
df1
中的值对应
Max_Event_Duration
在
df2
, 获得如下内容:
|---------------------|---------------------|------------------|
| ID_Machine | Max_Event_Duration | Timestamp |
|---------------------|---------------------|------------------|
| 1 | 97 | 572 |
|---------------------|---------------------|------------------|
| 2 | 115 | 884 |
|---------------------|---------------------|------------------|
有人知道如何创建第三个数据框或如何修改创建
df2
的代码吗?为了包括相应的
Timestamp
值(value)?
最佳答案
您必须首先创建一个数据框,其最大事件的名称与 OG 数据框中的名称相同
import pyspark.sql.functions as F
df_max = df1.groupBy("ID_Machine").agg(F.max("Event_Duration").alias("Event_Duration"))
df_max.show()
这会给你
df
:
+----------+--------------+
|ID_Machine|Event_Duration|
+----------+--------------+
| 1| 97|
| 2| 115|
+----------+--------------+
然后通过两个相似的命名列加入数据框,然后重命名事件持续时间
df_combined = df_max.join(df1, ["ID_Machine", "Event_Duration"]).withColumnRenamed("Event_Duration", "Max_Event_Duration")
df_combined.show()
这会给你:
+----------+------------------+---------+
|ID_Machine|Max_Event_Duration|Timestamp|
+----------+------------------+---------+
| 2| 115| 884|
| 1| 97| 572|
+----------+------------------+---------+
关于python - 在 Pyspark 中执行类似 Excel 的 "vlookup"方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64784285/
在过去的一年里,我对 Excel 已经相当熟练了,我已经为下一步做好了准备,开始使用 VBA。 我尝试实现以下目标: 我想创建一个可以运行多个 Vlookups 的工具来自不同的数据源,并将所有数据组
是否可以在 VLOOKUP 公式中插入 VLOOKUP 以搜索特定的 table_array? 这是我要使用的公式: =VLOOKUP($F492,CONCATENATE("'[Budget esti
我正在尝试 vlookup从一张纸到另一张纸的一些数据。 每当我尝试 Vlookup使用 VBA:结果是 Application.WorksheetFunction.vlookup代替Applicat
我正在寻找 vlookup 的替代方案,在感兴趣的上下文中提高性能。 上下文如下: 我有一个很大的 {key;data} 数据集(约 100'000 条记录) 我想对数据集执行大量 VLOOKUP 操
我有以下脚本,但收到 VLOOKUP 错误: Dim DataRange, LookupRange As Range Dim Data, Test As Variant Set DataRange =
我对 Pandas 和 Python 还很陌生,我根本不知道如何做一些在 Excel 中很容易完成的事情。我希望能从社区中得到一点帮助。 假设我有以下内容,这是一个与梦幻足球相关的 df,它具有三列
我有一个问题,http://goo.gl/i82eA这是我具有所需输出的示例数据。目前我有一个用户定义的函数,它手动使用许多 if 语句来完成这项工作,但如果它在列中找到某种颜色并返回与其对应的颜色图
我想创建一个超过 2 个工作表的 VLOOKUP,并查看三个查找值,其中一个值与中间的 - 连接起来。 基础数据太大,无法放入此处(30k 字符限制),因此文件如下: https://wetransf
我正在尝试将大型数据集及其处理从 Excel 转换到 Python/Pandas,但在尝试实现“IF(col A = x, VLOOKUP(col表 Y 中的 B),否则,VLOOKUP(表 Z 中的
我有两张纸。两张纸的第一列都有用户 ID,但两张纸之间只有一些 ID 重叠。我想将 userids 保留在第一张表中,但在第二张表中,第二列有一个我想要的数据点。对于第一张表中也存在于第二张表中的
当单元格值更改时,我正在尝试在 VBA 中执行 Vlookup,根据已更改的单元格查找值。 目前我有: Private Sub Worksheet_Change(ByVal Target As Ran
我正在同一个工作表上执行循环 vlookup,但出现运行时错误:1004:无法使用以下代码获取 WorksheetFunction 类的 Vlookup 属性: Sub Test()
我有一张表,其中包含农田和每个田地中包含的英亩数。这些领域是共同拥有的,并按百分比分配。 字段拆分表: 目前,我为每个字段创建一个新行,并为每个字段中包含的英亩数使用 sumif,然后使用另一个 vl
我在工作表 1 中为城市创建了一个多选下拉列表,与下拉列表关联的邮政编码在工作表 2 中。 这就是我的工作表 2 的外观。 1.) 允许用户从下拉列表中选择多个城市。用户选择城市后,我想在一个单元格中
我想从一张表中获取多行数据 sheet1进入另一张纸上的单个单元格sheet2基于查找。 例如,一张纸上有数据: sheet1 我想根据 id 查找数据并将所有相关行返回到一个单元格中,如下所示: s
我的问题是我正在尝试动态更改我的 vlookup 开始的位置。我有一个嵌套 If 和 vlookups 的基本工作解决方案。目前 If 语句检查 Vendor = A 等,然后执行 vlookup。如
我的单元格包含用逗号分隔的文本,例如: apples, bananas, mango 每个单元格中的项目数量各不相同,有的有一个,有的多达 10 个。 我希望遍历单元格中的每个项目,然后对它们执行 v
我目前正在为 excel 使用 VLOOKUP 函数,我想知道 VLOOKUP 是否真的比较单元格,还是只是直接使用它对面的单元格? 这是我的公式“=VLOOKUP(A2,Sheet3!A2:B181
Col A 有 ItemID Col B 有 Model_Num Col C 有一长串 Model_Num .在 Col D 中,我想查找 Model_Num Col C 并把 ItemID item
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
我是一名优秀的程序员,十分优秀!