我想将HIVE表从HIVE复制到HDFS。请建议步骤。后来我想将这个HFDS文件用于Mahout机器学习。
我使用存储在HDFS中的数据创建了一个HIVE表。然后我对该数据集中的少数变量进行了转换,并从中创建了一个新表。 现在我想将HIVE表从HIVE转移到HDFS。所以它可以被Mahout阅读。
当我输入
时hadoop fs -ls -R /user/hive/
我可以看到我创建的表格列表,
drwxr-xr-x - hdfs supergroup 0 2014-04-25 17:00 /user/hive/warehouse/telecom.db/telecom_tr
-rw-r--r-- 1 hdfs supergroup 5199062 2014-04-25 17:00 /user/hive/warehouse/telecom.db/telecom_tr/000000_0
我尝试将文件从Hive复制到HDFS,
hadoop fs -cp /user/hive/warehouse/telecom.db/telecom_tr/* /user/hdfs/tele_copy
这里我除了tele_copy应该是一个存储在hdfs中的csv文件。
但当我hadoop fs -tail /user/hdfs/tele_copy
时,我得到以下结果。
7.980.00.00.0-9.0-30.00.00.670.00.00.00.06.00.06.670.00.670.00.042.02.02.06.04.0198.032.030.00.03.00.01.01.00.00.00.01.00.01.01.00.00.00.01.00.00.00.00.00.00.06.00.040.09.990.01.01
32.64296.7544.990.016.00.0-6.75-27.844.672.3343.334.671.3331.4725.05.3386.6754.07.00.00.044.01.01.02.02.0498.038.00.00.07.01.00.00.00.01.00.00.01.00.00.00.00.00.01.01.01.00.01.00.00.03.00.010.029.991.01.01
30.52140.030.00.250.00.0-42.0-0.520.671.339.00.00.034.6210.677.3340.09.332.00.00.040.02.02.01.01.01214.056.050.01.05.00.00.00.00.00.00.01.00.01.01.00.00.01.01.00.00.01.00.00.00.06.00.001.00.00.01.01
60.68360.2549.990.991.250.038.75-10.692.331.6715.670.00.0134.576.00.0102.6729.674.00.00.3340.02.01.08.03.069.028.046.00.05.00.01.00.00.00.00.00.01.01.01.00.00.00.01.00.00.01.00.00.00.02.00.020.0129.990.01.01
这不是逗号分隔。
运行此命令后,我收到了同样的结果。
INSERT OVERWRITE DIRECTORY '/user/hdfs/data/telecom' SELECT * FROM telecom_tr;
当我做-ls
时drwxr-xr-x - hdfs supergroup 0 2014-04-29 17:34 /user/hdfs/data/telecom
-rw-r--r-- 1 hdfs supergroup 5199062 2014-04-29 17:34 /user/hdfs/data/telecom/000000_0
当我做猫时,结果不是CSV
答案 0 :(得分:0)
您真正要求的是让Hive将文件存储为CSV文件。尝试使用ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
,请参阅Row Format, Storage Format, and SerDe。