【发布时间】:2018-05-03 09:03:55
【问题描述】:
我有如下两个函数
def method1(ip:String,r:Double,op:String)={
val data = spark.read.option("header", true).csv(ip).toDF()
val r3= data.select("c", "S").dropDuplicates("C", "S").withColumn("R", lit(r))
r3.coalesce(1).write.format("com.databricks.spark.csv").option("header", "true").save(op)
}
def method2(ip:String,op:String)={
val data = spark.read.option("header", true).csv(ip).toDF()
val r3= data.select("c", "S").dropDuplicates("C", "StockCode")
r3.coalesce(1).write.format("com.databricks.spark.csv").option("header", "true").save(op)
}
我想通过基于 Json 对象参数来调用这个方法。 例如,如果我的输入 json 如下所示
{"name":"method1","ip":"Or.csv","r":1.0,"op":"oppath"}
它必须调用method1 和"Or.csv",1.0,”oppath" 作为参数,即json中的对象名表示方法名,扩孔字段为参数。
请帮助我。
【问题讨论】:
-
您需要解析 JSON 并在 Scala 中寻找
eval替代方案。您必须动态执行有时会变得丑陋的代码。缩小用例范围并使用match - case或if - else
标签: scala apache-spark spark-dataframe user-defined-functions scala-collections