Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 配置单元-获取列名_Hadoop_Hive - Fatal编程技术网

Hadoop 配置单元-获取列名

Hadoop 配置单元-获取列名,hadoop,hive,Hadoop,Hive,是否可以从表中检索列名并将其加载到配置单元中的另一个表或文本文件中?请告诉我我们是否可以这样做没有OOTB功能允许这样做。但是您可以使用描述和awk来实现: bin/hive -S -e "use default; describe demo;" | awk -F" " '{print $1}' > ~/filename.txt 用要操作的数据库和表替换默认值和演示值。另一种解决方案是使用hive.cli.print.headers=true 这就是我用来获取以逗号分隔的标题的方法。相应

是否可以从表中检索列名并将其加载到配置单元中的另一个表或文本文件中?请告诉我我们是否可以这样做

没有OOTB功能允许这样做。但是您可以使用描述awk来实现:

bin/hive -S -e "use default; describe demo;" | awk -F" " '{print $1}' > ~/filename.txt

用要操作的数据库和表替换默认值和演示值。

另一种解决方案是使用hive.cli.print.headers=true

这就是我用来获取以逗号分隔的标题的方法。相应地替换数据库和表:

hive -S -e 'SET hive.cli.print.header=true; SELECT * FROM database.table LIMIT 0' | sed -e 's/\t/,/g' > headers.txt

更简洁的版本

hive -S -e "SHOW COLUMNS IN database_name.table_name" > column_names.txt

“无OOTB功能”的说法言过其实。自版本0.10以来一直在配置单元中。@JosephCottam:OOTB是为了指出没有内置命令允许我们将列名导出到另一个表或文件中。如果你仍然觉得它被夸大了,请随意编辑答案。