2015-07-03 5 views
1

Я импортировал данные в Hadoop, используя Sqoop 1.4.6. Sqoop импортирует и сохраняет данные в HDFS в файле без расширения, но в формате csv. Я использовал Apache Drill для запроса данных из этого файла, но получил таблицу не найденную ошибку. В конфигурации плагина хранилища я даже добавлял пустое ("") пространство ("") в расширениях, но не смог запросить файл. Даже я смог запросить файл, когда я изменил имя файла с расширением. Помещение любого расширения в файл конфигурации работает иначе, чем нулевое расширение. Я могу запросить файл, сохраненный в формате csv, но с расширением «mat» или что-нибудь еще.Query Extensionless File с использованием Apache Drill

Есть ли способ запросить файлы без расширения?

ответ

2

Вы можете использовать формат ввода по умолчанию в конфигурации плагина хранилища для решения этой проблемы. Например:

select * from dfs.`/Users/khahn/Downloads/csv_line_delimit.csv`; 
+-------------------------+ 
|   columns   | 
+-------------------------+ 
| ["hello","1","2","3!"] | 
. . . 

Измените имя файла, чтобы удалить расширение и изменить плагин конфигурации «местоположение» и «defaultInputFormat»:

{ 
    "type": "file", 
    "enabled": true, 
    "connection": "file:///", 
    "workspaces": { 
    "root": { 
     "location": "/Users/khahn/Downloads", 
     "writable": false, 
     "defaultInputFormat": "csv" 
    }, 

запроса файл, который не имеет расширения.

0: jdbc:drill:zk=local> select * from dfs.root.`csv_line_delimit`; 
+-------------------------+ 
|   columns   | 
+-------------------------+ 
| ["hello","1","2","3!"] | 
. . . 
0

У меня такой же опыт. Во-первых, я импортировал 1 таблицу из oracle в hadoop 2.7.1, затем запрос через дрель. Это мой плагин конфигурация установлено через веб-интерфейс:

{ 
    "type": "file", 
    "enabled": true, 
    "connection": "hdfs://192.168.19.128:8020", 
    "workspaces": { 
    "hdf": { 
     "location": "/user/hdf/my_data/", 
     "writable": false, 
     "defaultInputFormat": "csv" 
    }, 
    "tmp": { 
     "location": "/tmp", 
     "writable": true, 
     "defaultInputFormat": null 
    } 
    }, 
    "formats": { 
    "csv": { 
     "type": "text", 
     "extensions": [ 
     "csv" 
     ], 
     "delimiter": "," 
    } 
    } 
} 

затем, в бурильном кли, запрос, как это:

USE hdfs.hdf 
SELECT * FROM part-m-00000 

Кроме того, в файловой системе Hadoop, когда я кот содержания «по совместительству m-00000 ', нижеуказанный формат, напечатанный на консоли:

2015-11-07 17:45:40.0,6,8 
2014-10-02 12:25:20.0,10,1 
Смежные вопросы