分享

spark读取parquet文件

macWang 发表于 2017-6-27 16:53:19 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 5 10008
spark2.10.6
用newHadoopFile来读取parquet文件
val rdd = sc.newHadoopFile(path,classOf[ParquetInputFormat[String]],classOf[Void],classOf[String])
这个rdd在action操作时会报错,错误的意思就是缺少read support这个类。
请问,我要重写一个类来继承ReadSupport这个类要怎么写,谢谢大神。

已有(5)人评论

跳转到指定楼层
nextuser 发表于 2017-6-27 19:22:06


下面是个例子,楼主模仿即可
[mw_shl_code=scala,true]/**
* 重写 :可以重写成员变量和成员方法(重写字段或者方法)
* 子类继承父类
*/
class OverrideOperation{
  
}

class Person1(val name : String,var age : Int) {
  println("The primarry constructor of Person")
  val school = "BJU"
  
  def sleep = "8 hours"
  
  override def toString = "I am a person !"
  
}
/**
* woker 继承自person ,name,age,salary是woker的成员变量  
* 子类必须把父类的主构造器中的参数都填充满(和java不同:继承时采用 super使用父类的成员)
*/
class Worker(name : String ,age : Int ,val salary :Long )extends Person1(name,age){

  println("This is the subClass of person,primary constructor of woker")
  
  override val school = "Spark" // 复写字段或者是方法都要进行 添加重写
  
  override def toString = "I am a worker !" + super.sleep
}

object Person {
  def main(args: Array[String]): Unit = {
//    构建时 先构建父类
    val w  = new Worker("spark",5,100000)
   
    println("School :" +w.school )
    println(w.toString())
  }
}[/mw_shl_code]
回复

使用道具 举报

macWang 发表于 2017-6-28 15:01:13
nextuser 发表于 2017-6-27 19:22
下面是个例子,楼主模仿即可
[mw_shl_code=scala,true]/**
* 重写 :可以重写成员变量和成员方法( ...

多谢,我其实是想问,有木有对ReadSupport这个类熟悉的。。。
还是谢谢你了
回复

使用道具 举报

desehawk 发表于 2017-6-28 15:30:09
macWang 发表于 2017-6-28 15:01
多谢,我其实是想问,有木有对ReadSupport这个类熟悉的。。。
还是谢谢你了

好像没有这个类,是不是搞错了可以看下他们的相关api

https://spark.apache.org/docs/latest/api.html

回复

使用道具 举报

macWang 发表于 2017-6-28 15:33:58
desehawk 发表于 2017-6-28 15:30
好像没有这个类,是不是搞错了可以看下他们的相关api

https://spark.apache.org/docs/latest/api.html ...

你好,这个类有的。
在parquet-hadoop的包下
回复

使用道具 举报

ledasion 发表于 2017-7-19 14:26:02
可以使用 SQLContext.parquetFile(path) 来读取 parquet 文件,形成一个 dataframe。
SQLContext 是用来读取结构化文件(例如 parquet,json)的 方法入口。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条