【发布时间】:2019-07-09 09:36:30
【问题描述】:
我正在尝试通过 NA 估算空值,并且代码仅使用 Scala 可以正常工作,但是当我在 Spark 中运行代码时它无法正常工作
/* first way:- */
def blankImputation(input: String): String = {
val pattern2 = """(^.*?,,+.*$)""".r;
if (pattern2.findFirstIn(input).contains(",,")) {
return pattern2.replaceAllIn(input, ",NA,");
}
return input;
}
var cleaned_df = inputFile.map(blankImputation)
/* second way:- */
def blankImputation(input: String): String = {
val pattern2 = """(^.*?,,+.*$)""".r;
if (input.isEmpty()) {
return "NA";
}
return input;
}
var cleaned_df = inputFile.map(blankImputation)
cleaned_df.toDF().collect()
我希望 NA 而不是 Empty 值。
【问题讨论】:
-
spark 没用的,出现什么错误,怎么用的可以分享一下吗?
-
我没有收到任何错误,但它没有估算连续的单引号。这是我的代码:- var clean_df = inputFile.map(blankImputation) 我试图将行作为键并进行空值插补。
-
这里的inputFile是什么,怎么读的?
-
输入文件是csv,我只是把它读入rdd:- val inputFile = sc.textFile("test/cust_details.csv")
-
如果你有一个 csv 文件,为什么不把 csv 读成数据框呢? as
spark.read.csv(csv).na.fill("NA")这将把你所有的空值替换为NA
标签: scala apache-spark feature-engineering