在 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" 存储模式信息
我是 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" 存储模式信息