0

我是hadoop的新手。我有 tsv 格式的数据,有 50 列,我需要将数据存储到配置单元中。如何在不使用读取时使用模式创建表语句手动创建表的情况下动态创建数据并将数据加载到表中?

4

2 回答 2

0

Hive 要求您运行 CREATE TABLE 语句,因为必须使用您稍后将要查询的数据位置的描述来更新 Hive 元存储。

Schema-on-read 并不意味着您可以在事先不知道存储位置和存储格式等元数据的情况下查询每个可能的文件。

另一方面,SparkSQL 或 Apache Drill 将允许您从文件中推断架构,但如果您不希望所有内容都是字符串列(或强制为意外类型),则必须再次为 TSV 定义列类型. 这两个工具都可以与 Hive 元存储交互,以“解耦”存储模式信息

于 2018-08-04T17:32:09.980 回答
0

你可以使用色调:

http://gethue.com/hadoop-tutorial-create-hive-tables-with-headers-and/

或者使用 Spark,您可以推断 csv 文件的架构,并将其保存为配置单元表。

val df=spark.read
  .option("delimiter", "\t")
  .option("header",true)
  .option("inferSchema", "true") // <-- HERE
  .csv("/home/cloudera/Book1.csv")
于 2018-08-03T08:04:51.383 回答