小编1pl*_*ara的帖子

Spark:数据集上的映射组

我正在下面的数据集上尝试这个 mapgroups 函数,但不知道为什么我的“总价值”列为 0。我在这里遗漏了什么???请指教

Spark 版本 - 2.0 Scala 版本 - 2.11

case class Record(Hour: Int, Category: String,TotalComm: Double, TotalValue: Int)
val ss = (SparkSession)
import ss.implicits._

val df: DataFrame = ss.sparkContext.parallelize(Seq(
(0, "cat26", 30.9, 200), (0, "cat26", 22.1, 100), (0, "cat95", 19.6, 300), (1, "cat4", 1.3, 100),
(1, "cat23", 28.5, 100), (1, "cat4", 26.8, 400), (1, "cat13", 12.6, 250), (1, "cat23", 5.3, 300),
(0, "cat26", 39.6, 30), (2, "cat40", 29.7, 500), (1, "cat4", 27.9, 600), (2, "cat68", 9.8, 100), …
Run Code Online (Sandbox Code Playgroud)

apache-spark spark-dataframe apache-spark-dataset

2
推荐指数
1
解决办法
7705
查看次数

使用Spark DataFrame进行现场数据验证

我有一堆列,样本如我的数据所示,如下所示。我需要检查列中的错误,并且必须生成两个输出文件。我正在使用Apache Spark 2.0,我想以一种有效的方式做到这一点。

Schema Details
---------------
EMPID - (NUMBER)
ENAME - (STRING,SIZE(50))
GENDER - (STRING,SIZE(1))

Data
----
EMPID,ENAME,GENDER
1001,RIO,M
1010,RICK,MM
1015,123MYA,F
Run Code Online (Sandbox Code Playgroud)

我期望的输出文件应如下所示:

1.
EMPID,ENAME,GENDER
1001,RIO,M
1010,RICK,NULL
1015,NULL,F

2.
EMPID,ERROR_COLUMN,ERROR_VALUE,ERROR_DESCRIPTION
1010,GENDER,"MM","OVERSIZED"
1010,GENDER,"MM","VALUE INVALID FOR GENDER"
1015,ENAME,"123MYA","NAME SHOULD BE A STRING"
Run Code Online (Sandbox Code Playgroud)

谢谢

apache-spark apache-spark-sql apache-spark-dataset

1
推荐指数
1
解决办法
6041
查看次数