在 hive 中读取 tsv 格式文件的模式

Schema on read in hive for tsv format file

我是 hadoop 新手。我有 50 列的 tsv 格式数据,我需要将数据存储到配置单元中。如何在不手动创建 table 的情况下动态创建数据并将其加载到 table

你可以使用 Hue :

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

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

val df=spark.read
  .option("delimiter", "\t")
  .option("header",true)
  .option("inferSchema", "true") // <-- HERE
  .csv("/home/cloudera/Book1.csv")

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

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

另一方面,SparkSQL 或 Apache Drill 可以让您从文件中推断模式,但如果您不希望所有内容都是字符串列(或强制转换为意想不到的类型)。这两种工具都可以与 Hive Metastore 交互,以 "decoupled" 存储模式信息