【问题标题】:spark Scala data frame selectspark Scala 数据框选择
【发布时间】:2020-04-16 21:11:27
【问题描述】:

我正在尝试将 pyspark 代码转换为 spark Scala,但遇到以下错误:

pyspark 代码

import pyspark.sql.functions as fn
valid_data = bcd_df.filter(fn.lower(bdb_df.table_name)==tbl_nme)
.select("valid_data").rdd
.map(lambda x: x[0])
.collect()[0]

从bcd_df 数据框我得到一个带有table_name 的列,并将table_name 的值与我传递的参数tbl_name 匹配,然后选择valid_data 列数据。

这是 spark scala 中的代码。

val valid_data =bcd_df..filter(col(table_name)===tbl_nme).select(col("valid_data")).rdd.map(x=> x(0)).collect()(0)

错误如下:

Exception in thread "main" org.apache.spark.sql.AnalysisException: cannot resolve '`abcd`' given input 
columns:
Not sure why it is taking abcd as column.

感谢任何帮助。

版本

【问题讨论】:

    标签: scala2.11.8 spark2.3 scala apache-spark pyspark apache-spark-sql


    【解决方案1】:

    将table_name列与col中的quotes(")括起来

    val valid_data =bcd_df.filter(col("table_name")===tbl_nme).select(col("valid_data")).rdd.map(x=> x(0)).collect()(0)
    

    【讨论】:

    • 谢谢舒,我可以得到valid_data作为字符串。之后我正在做一个正则表达式,如下所示 val regex = "\\W+" val newAddress = regex.replaceAllIn("123 Main Street", "x") 并且错误作为值 replaceAllIn 不是字符串的成员。任何帮助表示赞赏。
    • 之后 val names= for (x
    猜你喜欢
    • 2018-08-08
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 2018-11-09
    • 2019-07-17
    • 1970-01-01
    • 2017-10-25
    • 1970-01-01
    相关资源
    最近更新 更多