【问题标题】:Spark Sql OR command not returning resultsSpark Sql OR 命令不返回结果
【发布时间】:2017-02-14 18:12:02
【问题描述】:

我正在尝试在 Zeppelin 中运行以下命令:

SELECT duration FROM voip where duration = 17 or  duration = 1 

这不会返回任何结果,但在那里运行它们时,查询会返回结果。我也在尝试在 Scala 中运行类似的代码,但它不起作用。

df.where(df("duration").===(1) || df("duration").===(2)).limit(10)

我可以编写一些只执行每个查询并合并所有数据帧的东西,但我担心性能。有什么想法吗?

【问题讨论】:

  • 不清楚scala版本是否有效?如果它有效,看起来您正在比较 scala 中的字符串但 SQL 中的整数。架构是什么?
  • 抱歉,无法发布架构,我必须更改要发布的搜索值。 Niether 工作并忽略围绕 Scala 版本的 quets,它们不应该存在

标签: apache-spark apache-spark-sql spark-dataframe


【解决方案1】:

你可以试试isin函数吗:

df.where(df("duration").isin("1","2")).limit(10)

 val df = Seq(30,1,2,3,4,5,6).toDF("duration")


 val df1 = df.where(df("duration").isin("1","2"))
 df1.show()


-----------------+
|duration         |
+-----------------+
|                1|
|                2|
+-----------------+

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-17
    • 2012-09-28
    • 1970-01-01
    • 2017-12-28
    • 2015-03-10
    • 2015-08-26
    • 1970-01-01
    • 2016-11-17
    相关资源
    最近更新 更多