【问题标题】:Storing avro data in ORC format in HDFS with out using HIVE在不使用 HIVE 的情况下在 HDFS 中以 ORC 格式存储 avro 数据
【发布时间】:2016-03-19 22:49:15
【问题描述】:

我比较将 avro 数据存储为 ORC 和 Parquet 格式, 我成功使用 "com.twitter" % "parquet-avro" % "1.6.0" 将 Avro 数据存储到 parquet 中,但找不到任何信息或 API 以 ORC 格式存储 avro 数据。

ORC 是否仅与 Hive 紧密耦合?

谢谢 无名氏

【问题讨论】:

  • 您能澄清一下"com.twitter" % "parquet-avro" % "1.6.0" 的意思吗?它对我来说只是一种依赖,而不是一种转换数据的方式。
  • 另外,我还没有测试过,但我建议使用 Pig - 您可以使用 AvroStorage 读取数据并使用 OrcStorage 写入数据。这样您就不需要中间表,而且如果幸运的话,您也不必指定列。

标签: hadoop apache-spark avro orc


【解决方案1】:

你还没有说你使用 Spark,但问题已被标记,所以我假设你是。

ORC 文件格式目前与 Spark 中的 HiveContext 密切相关(我认为仅在 1.4 及更高版本中可用),但如果您创建配置单元上下文,您应该能够将数据帧写入 ORC 文件中您可以使用 Parquet,例如:

import org.apache.spark.sql._
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
val df = sqlContext.read.avro(("/input/path")
df.write.format("orc").save("/path/to/use")

如果您通过 Spark 数据帧 API 读取 avro 数据,那么这就是您所需要的,但在Hortonworks blog 上有更多详细信息

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-11-18
  • 1970-01-01
  • 2016-09-08
  • 2015-03-19
  • 2016-08-26
  • 1970-01-01
  • 2018-07-04
  • 2016-08-31
相关资源
最近更新 更多