【问题标题】:Select first word of string in Spark.SQL在 Spark.SQL 中选择字符串的第一个单词
【发布时间】:2022-01-09 08:34:42
【问题描述】:

我正在尝试通过 Spark SQL 选择表 Office_Address 中 Office_Name 列字符串中的第一个单词。我正在使用以下查询 -

select split_part(Office_NAME,' ',1) Office_Alias from world_Location.Office_Addrsss

当我在 redshift 数据库中查询时它工作正常,但当我尝试通过 Python 脚本(胶水作业)中的 spark.SQL 运行它时失败

错误提示

AnalysisException: "Undefined function: 'split_part'. This function is neither a registered temporary function nor a permanent function registered in the database 'default'.; line 165 pos 55"

可能是什么问题?

【问题讨论】:

    标签: python sql apache-spark pyspark amazon-redshift


    【解决方案1】:

    你得到了错误

    AnalysisException: "未定义函数:'split_part'。这个函数是 既不是注册的临时功能也不是永久功能 在数据库中注册'默认'。;第 165 行 pos 55"

    因为split_part 不是可用的内置 spark api 的一部分here

    相反,您可以尝试使用带有索引0split,因为您对以空格分隔的第一个单词感兴趣,例如。

    select split(Office_NAME,' ')[0] Office_Alias from world_Location.Office_Addrsss
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-08
      • 2015-05-08
      相关资源
      最近更新 更多