将RDD作为参数传递并将dataframe返回给函数-scala
我试图创建一个函数,该函数将字符串或RDD作为参数,但返回dataframe 代码:将RDD作为参数传递并将dataframe返回给函数-scala,scala,apache-spark,spark-dataframe,Scala,Apache Spark,Spark Dataframe,我试图创建一个函数,该函数将字符串或RDD作为参数,但返回dataframe 代码: 但它总是重复rdd。有什么建议吗?不确定代码不起作用的确切原因,但好的Scala表单将包括指定返回类型: scala> case class Person(id: Int) defined class Person scala> def udf1(fName: String): DataFrame = { | val file = sc.textFile(fName) | fi
但它总是重复rdd。有什么建议吗?不确定代码不起作用的确切原因,但好的
Scala
表单将包括指定返回类型:
scala> case class Person(id: Int)
defined class Person
scala> def udf1(fName: String): DataFrame = {
| val file = sc.textFile(fName)
| file.map(p => Person(p.toInt)).toDF()
| }
udf1: (fName: String)org.apache.spark.sql.DataFrame
scala> val df = udf1("file.txt")
df: org.apache.spark.sql.DataFrame = [id: int]
不确定代码不起作用的确切原因,但好的
Scala
表单将包括指定返回类型:
scala> case class Person(id: Int)
defined class Person
scala> def udf1(fName: String): DataFrame = {
| val file = sc.textFile(fName)
| file.map(p => Person(p.toInt)).toDF()
| }
udf1: (fName: String)org.apache.spark.sql.DataFrame
scala> val df = udf1("file.txt")
df: org.apache.spark.sql.DataFrame = [id: int]
可能是我没有定义返回类型。如果我定义了返回数据帧的方法,它就可以工作了。谢谢!可能是我没有定义返回类型。如果我定义了返回数据帧的方法,它就可以工作了。谢谢!