我是Hadoop新手。我有50列的tsv格式的数据,我需要将数据存储到配置单元中。如何在不使用创建的模式声明和使用读取模式的手动创建表的情况下快速创建数据并将其加载到表中?
答案 0 :(得分:0)
Hive要求您运行CREATE TABLE语句,因为Hive元存储库必须使用稍后将要查询的数据位置的描述进行更新。
读取模式并不意味着您无需事先知道元数据(例如存储位置和存储格式)就可以查询每个可能的文件。
另一方面,SparkSQL或Apache Drill将允许您从文件中推断模式,但是如果您不希望所有内容都为字符串列(或强制转换为字符串列),则必须再次为TSV定义列类型。意外类型)。这两个工具都可以与Hive Metastore进行交互,以“分离”存储架构信息
答案 1 :(得分:-1)
您可以使用Hue:
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")