【问题标题】:Spark Data frame search column starting with a string以字符串开头的 Spark 数据框搜索列
【发布时间】:2017-08-07 17:13:16
【问题描述】:

我需要根据列值应以预定义字符串开头的条件过滤数据框。

我正在尝试关注:

 val domainConfigJSON = sqlContext.read
    .jdbc(url, "CONFIG", prop)
    .select("DID", "CONF", "KEY").filter("key like 'config.*'")

得到异常:

引起:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 您的 SQL 语法有错误;检查手册 对应于您的 MariaDB 服务器版本,以便使用正确的语法 在第 1 行的 'KEY = 'config.*'' 附近

Using spark: 1.6.1

【问题讨论】:

  • KEY 也是 MariaDB 中的保留字。

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


【解决方案1】:

您可以使用 Column 类中的 startsWith 函数。

myDataFrame.filter(col("columnName").startswith("PREFIX"))

【讨论】:

  • 我必须使用startswith - 全部小写
  • startsWith 给出错误 column is not callable
【解决方案2】:

我使用了相同的功能,但出现错误然后我检查了错误是什么?

实际上,我们需要使用startsWith(literals: String),但上面的函数是小写的startswith()

例如:df.filter(col("ACCOUNT_NUMBER").startsWith("9"))

【讨论】:

    猜你喜欢
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    • 2021-05-25
    相关资源
    最近更新 更多