将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;的成员。
帮助。