我想收集一个列表,其中包含每个 id1 中具有相同或更低级别的 id2 的所有值。为了实现这一点,我使用窗口函数和 collect_list 函数。但是,我没有得到...
我想收集组内具有相同或较低级别每个 id1 的所有 id2 值的列表。
为了实现这一点,我使用了窗口函数和 collect_list 函数。但是,我在这里没有得到条件部分。如何解决?
df = spark.createDataFrame([
("A", 0, "M1", "D1"),
("A", 1, "D1", "D2"),
("A", 2, "D2", "D3"),
("A", 3, "D3", "D4"),
("B", 0, "M2", "D5"),
("B", 1, "D4", "D6"),
("B", 2, "D5", "D7")
], ["group_id", "level", "id1", "id2"])
window = Window.partitionBy('group_id').orderBy('level').rowsBetween(
Window.unboundedPreceding, Window.unboundedFollowing
)
df_with_list = df.withColumn(
"list_lower_level",
F.collect_list("id2").over(window)
)
df_with_list.show()
输出如下:
+--------+-----+---+---+----------------+
|group_id|level|id1|id2|list_lower_level|
+--------+-----+---+---+----------------+
| A| 0| M1| D1|[D1, D2, D3, D4]|
| A| 1| D1| D2|[D1, D2, D3, D4]|
| A| 2| D2| D3|[D1, D2, D3, D4]|
| A| 3| D3| D4|[D1, D2, D3, D4]|
| B| 0| M2| D5| [D5, D6, D7]|
| B| 1| D4| D6| [D5, D6, D7]|
| B| 2| D5| D7| [D5, D6, D7]|
+--------+-----+---+---+----------------+
然而,我想实现这个目标:
+--------+-----+---+---+----------------+
|group_id|level|id1|id2|list_lower_level|
+--------+-----+---+---+----------------+
| A| 0| M1| D1|[D1, D2, D3, D4]|
| A| 1| D1| D2|[D2, D3, D4]|
| A| 2| D2| D3|[D3, D4]|
| A| 3| D3| D4|[D4]|
| B| 0| M2| D5| [D5, D6, D7]|
| B| 1| D4| D6| [D6, D7]|
| B| 2| D5| D7| [D7]|
+--------+-----+---+---+----------------+
我需要使用 Puthon 自动化 PuTTY Windows 应用程序。我尝试使用 pywimauto 以及 pyautogui 模块。我可以启动 PuTTy 应用程序,但无法进行进一步的活动...
我需要使用 Puthon 自动化 PuTTY Windows 应用程序。我尝试使用 pywimauto 和 pyautogui 模块。我可以启动 PuTTy 应用程序,但无法执行进一步的操作,例如输入主机名或打开保存会话,也无法在连接到 PuTTY 后执行一些单击和键入操作。以下是我尝试过的-
from pywinauto inport application from pywinnauto.keyboard import send_keys import time
# Path to the PUTTY executable
putty_path = r"C:\Program Files\PuTTY\putty.exe* # Adjust if necessary
# Launch PUTTY application
app = application. Application(backend="uia").start(putty_path)
# Connect to the PUTTY window
putty_window = app.window()
# Wait for PUTTY to be fully Loaded
time.sleep (2)
# Set the hostname
putty_window.child_window(title="Host Name (or IP address)", control_type="Edit").set_text(hostname) putty_window.child_window(title="Port", control_type="Edit").set_text(port)
# Click on Open button
putty_window.child_window(title="Open", control_type="Button").click()
# Wait for the terminal to open and prompt for user input
time.sleep(5)
任何可以实现上述目标的想法/方法都将非常有帮助。提前致谢!