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 数据框选择的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Scala/Spark 中为数据框中的每一行编写一个 Json 文件并重命名文件