【发布时间】:2017-05-23 03:51:27
【问题描述】:
我正在使用pyspark.sql.dataframe.DataFrame。我想根据多个变量过滤stack 的行,而不是单个变量{val}。我正在使用 Python 2 Jupyter 笔记本。目前,我执行以下操作:
stack = hiveContext.sql("""
SELECT *
FROM db.table
WHERE col_1 != ''
""")
stack.show()
+---+-------+-------+---------+
| id| col_1 | . . . | list |
+---+-------+-------+---------+
| 1 | 524 | . . . |[1, 2] |
| 2 | 765 | . . . |[2, 3] |
.
.
.
| 9 | 765 | . . . |[4, 5, 8]|
for i in len(list):
filtered_stack = stack.filter("array_contains(list, {val})".format(val=val.append(list[i])))
(some query on filtered_stack)
如何在 Python 代码中重写它以根据多个值过滤行?即其中 {val} 等于某个包含一个或多个元素的数组。
我的问题与:ARRAY_CONTAINS muliple values in hive 相关,但是我试图在 Python 2 Jupyter 笔记本中实现上述目标。
【问题讨论】: