DataFrame使用spark scala中的模式来元组rdd

时间:2016-07-15 08:48:11

标签: scala apache-spark apache-spark-sql rdd spark-dataframe

将RDD(元组数组)转换为带有RDD模式的DataFrame时,有一个函数toDF。
ex)template<typename F> struct fn : private F { using F::operator(); }; template<typename R, typename... Args> struct fn<R (*)(Args...)> { fn(R (*f)(Args...)) noexcept : f_(f) {} R operator()(Args&&... args) const { return f_(std::forward<Args>(args)...); } private: R (*f_)(Args...); };

当我将DataFrame转换为具有DataFrame架构的RDD(元组数组)时 我应该使用getAsType ex)val df = sc.parallelize(Array((1,"a"),(2,"b")).toDF("x","y")

有时我的DataFrame有很多列 有没有办法将DF转换为RDD,如toDF的反向功能。

我试着像

一样
val rdd = df.map(x => (x.getAs[Int]("x"), x.getAs[String]("y")))

但是,我收到一条错误消息&#34;错误:类型_2不是(String,org.apache.spark.sql.types.DataType)&#34;的成员。

帮助。

0 个答案:

没有答案