如何使用 spark 过滤 Hive 中的记录

Posted

技术标签:

【中文标题】如何使用 spark 过滤 Hive 中的记录【英文标题】:How to filter records in Hive using spark 【发布时间】:2017-06-29 11:00:14 【问题描述】:

为什么没有比较刺痛?

我的输入是 -

+-------+
|      y|
+-------+
| ""no""|
| ""no""|
| ""no""|
|""yes""|
| ""no""|
| ""no""|
| ""no""|
| ""no""|
|""yes""|
| ""no""|
| ""no""|
| ""no""|
| ""no""|
|""yes""|
| ""no""|
| ""no""|
+-------+

我正在查询-

sqlContext.sql("select count(y) from dummy where y='yes'").show()

输出是 -

+---+
|_c0|
+---+
|  0|
+---+

y 在 DDL 中被声明为字符串类型

【问题讨论】:

早应该使用.replaceAll("\"\"", "") :D 【参考方案1】:

你应该试试这个:

sqlContext.sql("select count(y) from dummy where y='\"\"yes\""'").show()

请注意,您的数据有 ""yes"" 而不仅仅是 yes

您仍然需要清理数据 :)

或者这样做:

sqlContext.sql("select count(y) from dummy where y like '%yes%'").show()

【讨论】:

你可以ACCEPT回答或投票,如果这符合问题,并且在你的情况下。

以上是关于如何使用 spark 过滤 Hive 中的记录的主要内容,如果未能解决你的问题,请参考以下文章

Spark Dataframe 中的过滤操作

如何使用 Spark SQL 识别 hive 表中的分区列

源码级解读如何解决Spark-sql读取hive分区表执行效率低问题

从 Hive 元存储(parquet 格式)在 Spark 中本地处理 10 亿条记录需要 6 个小时。如何加快速度?

如何使用 jupyter notebook 在 pyspark 中的 Hive 上使用 %sql Magic 字符串启用 spark SQL

如何在不使用 HDP 3.1 中的仓库连接器的情况下将表从 spark 中写入 hive