spark Scala 数据框选择

Posted

技术标签:

【中文标题】spark Scala 数据框选择【英文标题】:spark Scala data frame select 【发布时间】: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

【问题讨论】:

【参考方案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

以上是关于spark Scala 数据框选择的主要内容,如果未能解决你的问题,请参考以下文章

Spark scala 从列表中选择多列和单列

如何在 Scala/Spark 中为数据框中的每一行编写一个 Json 文件并重命名文件

Spark 中的数据框比较:Scala

使用数据框的子集和 spark/scala 中的两个特定字段过滤数据框 [关闭]

Scala/Spark 选择列非常慢

Spark 数据框 Scala 棘手