【发布时间】:2023-01-27 00:28:26
【问题描述】:
我搜索了大量文档,试图找到我正在尝试做的事情的例子。我承认更大的问题可能是我缺乏 python 专业知识。所以我在这里伸出援手,希望有人能指出我正确的方向。我正在尝试创建一个基于函数参数动态查询表的 python 函数。这是我正在尝试做的一个例子:
def validateData(_ses, table_name,sel_col,join_col, data_state, validation_state):
sdf_t1 = _ses.table(table_name).select(sel_col).filter(col('state') == data_state)
sdf_t2 = _ses.table(table_name).select(sel_col).filter(col('state') == validation_state)
df_join = sdf_t1.join(sdf_t2, [sdf_t1[i] == sdf_t2[i] for i in join_col],'full')
return df_join.to_pandas()
这将被称为这样的:
df = validateData(ses,'table_name',[col('c1'),col('c2')],[col('c2'),col('c3')],'AZ','TX')
这个问题我在函数的第 5 行遇到了问题:
df_join = sdf_t1.join(sdf_t2, [col(sdf_t1[i]) == col(sdf_t2[i]) for i in join_col],'full')
我知道代码不正确,但我希望它能解释我正在尝试做的事情。如果有人对这是否可能或如何进行有任何建议,我将不胜感激。
【问题讨论】:
-
如果您想使用直接完全连接 SQL,我可以提出一个解决方案 - 使用 SQL 构建带有过滤器的完全连接数据,然后执行您的操作...请告诉我这是否可行。
-
@KoushikRoy,您能否将我链接到您所指的示例?我肯定会尽我所能探索任何解决方案,但我不明白你的意思。先感谢您!
-
在回答中添加了它。
标签: python join dynamic snowflake-cloud-data-platform