首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读取gz.parquet文件

读取gz.parquet文件
EN

Stack Overflow用户
提问于 2016-03-30 09:32:07
回答 1查看 9.5K关注 0票数 1

你好,我需要从gz.parquet文件中读取数据,但不知道如何读取??尝试了用黑斑羚,但我得到的结果与没有表结构的parquet-tools cat相同。

P.S:任何改进星火代码的建议都是非常欢迎的。

下面是由twitter、gz.parquet、=>、flume、=>、kafka、=>星火流=> hive/gz.parquet文件创建的数据管道的结果,我有以下的拼花文件。对于水槽代理,我使用agent1.sources.twitter-data.type = org.apache.flume.source.twitter.TwitterSource

星火代码将来自kafka的数据排成队列,并存储在蜂箱中,如下所示:

代码语言:javascript
复制
val sparkConf = new SparkConf().setAppName("KafkaTweet2Hive")
    
val sc = new SparkContext(sparkConf)
    
val ssc = new StreamingContext(sc, Seconds(2))
val sqlContext =  new org.apache.spark.sql.hive.HiveContext(sc)//new org.apache.spark.sql.SQLContext(sc)
    
// Create direct kafka stream with brokers and topics
val topicsSet = topics.split(",").toSet
val kafkaParams = Map[String, String]("metadata.broker.list" -> brokers)
val messages = KafkaUtils.createDirectStream[String, String, StringDecoder, StringDecoder](ssc, kafkaParams, topicsSet)
    
// Get the data (tweets) from kafka
val tweets = messages.map(_._2)
    
    
// adding the tweets to Hive
    
tweets.foreachRDD { rdd =>

    val hiveContext = SQLContext.getOrCreate(rdd.sparkContext)
    
    import sqlContext.implicits._
    
    val tweetsDF = rdd.toDF()
    tweetsDF.write.mode("append").saveAsTable("tweet")  
}

当我运行spark-streaming应用程序时,它将数据作为gz.parquet文件存储在hdfs:/user/hive/warehouse目录中,如下所示:

代码语言:javascript
复制
[root@quickstart /]# hdfs dfs -ls /user/hive/warehouse/tweets
Found 469 items
-rw-r--r--   1 root supergroup          0 2016-03-30 08:36 /user/hive/warehouse/tweets/_SUCCESS
-rw-r--r--   1 root supergroup        241 2016-03-30 08:36 /user/hive/warehouse/tweets/_common_metadata
-rw-r--r--   1 root supergroup      35750 2016-03-30 08:36 /user/hive/warehouse/tweets/_metadata
-rw-r--r--   1 root supergroup      23518 2016-03-30 08:33 /user/hive/warehouse/tweets/part-r-00000-0133fcd1-f529-4dd1-9371-36bf5c3e5df3.gz.parquet
-rw-r--r--   1 root supergroup       9552 2016-03-30 08:33 /user/hive/warehouse/tweets/part-r-00000-02c44f98-bfc3-47e3-a8e7-62486a1a45e7.gz.parquet
-rw-r--r--   1 root supergroup      19228 2016-03-30 08:25 /user/hive/warehouse/tweets/part-r-00000-0321ce99-9d2b-4c52-82ab-a9ed5f7d5036.gz.parquet
-rw-r--r--   1 root supergroup        241 2016-03-30 08:25 /user/hive/warehouse/tweets/part-r-00000-03415df3-c719-4a3a-90c6 462c43cfef54.gz.parquet

来自_metadata文件的架构如下:

代码语言:javascript
复制
    [root@quickstart /]# parquet-tools meta hdfs://quickstart.cloudera:8020/user/hive/warehouse/tweets/_metadata
    creator:       parquet-mr version 1.5.0-cdh5.5.0 (build ${buildNumber}) 
    extra:         org.apache.spark.sql.parquet.row.metadata = {"type":"struct","fields":[{"name":"tweet","type":"string","nullable":true,"metadata":{}}]} 
    
    file schema:   root 
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    tweet:         OPTIONAL BINARY O:UTF8 R:0 D:1

Furthermore, if i load the data into a dataframe in spark i get the output of `df.show´ as follows:

    +--------------------+
    |               tweet|
    +--------------------+
    |��Objavro.sc...|
    |��Objavro.sc...|
    |��Objavro.sc...|
    |ڕObjavro.sch...|
    |��Objavro.sc...|
    |ֲObjavro.sch...|
    |��Objavro.sc...|
    |��Objavro.sc...|
    |֕Objavro.sch...|
    |��Objavro.sc...|
    |��Objavro.sc...|
    |��Objavro.sc...|
    |��Objavro.sc...|
    |��Objavro.sc...|
    |��Objavro.sc...|
    |��Objavro.sc...|
    |��Objavro.sc...|
    |��Objavro.sc...|
    |��Objavro.sc...|
    |��Objavro.sc...|
    +--------------------+
    only showing top 20 rows

How ever i would like to see the tweets as plain text?
EN

回答 1

Stack Overflow用户

发布于 2016-06-30 06:17:34

代码语言:javascript
复制
sqlContext.read.parquet("/user/hive/warehouse/tweets").show
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36304815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档