Spark获取2个特定行之间的行
Posted
技术标签:
【中文标题】Spark获取2个特定行之间的行【英文标题】:Spark get rows between 2 specific rows 【发布时间】:2020-06-21 22:12:58 【问题描述】:我有以下数据框:
我想获取值介于 ('2/1/2020' 和 '2/5/2020') 之间的行
我试过了:
df.select([c for c in df.columns if c > '2/1/2020' & c < '2/5/2020']).show()
但我明白了:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <listcomp>
TypeError: unsupported operand type(s) for &: 'str' and 'str'
因为表头是csv类型(Date) 谢谢!
【问题讨论】:
不要使用 '&' 尝试使用 'and'。 & 是一个位运算符,对字符串没有帮助。 【参考方案1】:而不是&
use and
布尔运算符。
df.select([c for c in df.columns if c > '2/1/2020' and c < '2/5/2020']).show()
Example:
df=spark.createDataFrame([(1,2,3,4,5,6)],['pro','2/1/2020','2/2/2020','2/3/2020','2/4/2020','2/5/2020'])
df.select([c for c in df.columns if c > '2/1/2020' and c < '2/5/2020']).show()
#+--------+--------+--------+
#|2/2/2020|2/3/2020|2/4/2020|
#+--------+--------+--------+
#| 3| 4| 5|
#+--------+--------+--------+
【讨论】:
小问题,你知道如何取前 2 行还有 [PROVINCE_STATE] 和 [COUNTRY_REGION) 我的意思是在同一个选择中,取 [PROVINCE_STATE] 和 [COUNTRY_REGION] 和 c > '2/1/2020' 和 c 试试df.select([c for c in df.columns if (c > '2/1/2020' and c < '2/5/2020') or (c.upper() in ['PROVINCE_STATE','COUNTRY_REGION'])]).show()
以上是关于Spark获取2个特定行之间的行的主要内容,如果未能解决你的问题,请参考以下文章
我无法使用 jQuery 发布特定行并获取字段的值,我获取第一行的值而不是提交的行