от
Ниже приведен запрос выбора, который я пытаюсь:
SELECT * from test WHERE doc = '/folder1/folder2

Этот запрос возвращает ноль результатов.

Если я изменяю запрос, используя like
, он работает без специальных символов
/

SELECT * from test WHERE doc LIKE '%folder1%folder2%path%testfile%txt';
Это работает Как я могу исправить этот запрос, чтобы использовать оператор
eq
или
IN
, так как мне интересно запустить пакетный выбор?              

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
Чтобы проверить вашу ситуацию, я создал текстовый файл, содержащий:
hello
there
/folder1/folder2

Я загрузил файл в каталог на S3, затем создал внешнюю таблицу в Афине:

CREATE EXTERNAL TABLE stack (doc string) 
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' 
WITH SERDEPROPERTIES ("separatorChar" = ",", "escapeChar" = "\\") 
LOCATION 's3://my

Затем я запустил команду:

select * from stack WHERE doc = '/folder1/folder2

Он вернулся:

1   /folder1/folder2

Так что это сработало для меня. Таким образом, ваша проблема может быть результатом содержимого файла или определения внешней таблицы (например, с использованием другого Serde).
    
...