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】:

而不是&amp; 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 &gt; '2/1/2020' and c &lt; '2/5/2020') or (c.upper() in ['PROVINCE_STATE','COUNTRY_REGION'])]).show()

以上是关于Spark获取2个特定行之间的行的主要内容,如果未能解决你的问题,请参考以下文章

检索行之间特定列不同的行

通过两个文本文件中的特定模式获取差异文件

php 从最后插入的行获取特定值

我无法使用 jQuery 发布特定行并获取字段的值,我获取第一行的值而不是提交的行

如何使用 Swift 从 CoreData sqlite 表中获取特定的行数据

在不计算的情况下获取 Spark 数据框中的行数