2017-01-17 8 views
0

У меня есть некоторые данные в HDFS @/пользователь/Cloudera/Test/. Я очень хорошо вижу записи, запустив «hdfs -dfs -cat Test/».Адрес для файловой системы HDFS

Теперь тот же файл, мне нужно, чтобы его читали как RDD в scala. Я пробовал следующее в scala shell.

вал файл = sc.textFile ("HDFS: //quickstart.cloudera: 8020/пользователь/Cloudera/Test")

Тогда я написал некоторый фильтр и для цикла, чтобы прочитать слова. Но когда я использую Println наконец, он говорит, что файл не найден.

Может кто-нибудь, пожалуйста, помогите мне узнать, какой будет HDFS-url в этом случае. Примечания: Я использую Cloudera CDH5.0 VM

+0

так это '/ user/Cloudera/Test /' текстовый файл ?? Это похоже на папку –

ответ

1

Если вы пытаетесь получить доступ к файлу в искре задание, то вы можете просто использовать url val file = sc.textFile («/ user/Cloudera/Test») Spark автоматически обнаружит этот файл, который вам не нужно добавлять в качестве префикса как localhost, потому что искровое задание по умолчанию читает их из каталога HDfS ,

Надеюсь, что это разрешит ваш запрос.

+0

Это не сработало. Я могу видеть содержимое, выполнив «hdfs dfs -cat hdfs: /user/cloudera/temp.txt» ..... Однако [val file = sc.textFile («hdfs:/user/Cloudera/temp. txt ")] выбрасывает ошибку. Путь не существует. –

+0

Не используйте HDfS в качестве префикса, если вы выполняете свою работу в искровом или Hadoop, они будут автоматически искать в HDfS файл данных, который вам не нужно упоминать. Просто сохраните его /user/Cloudera/temp.txt –

+0

Если я использую «/user/Cloudera/temp.txt», я получаю эту ошибку. Путь ввода не существует: hdfs: //quickstart.cloudera: 8020/user/Cloudera /temp.txt –

0

Вместо использование «quickstart.cloudera» и порта, используйте только IP-адрес:

val file = sc.textFile("hdfs://<ip>/user/Cloudera/Test") 
+0

Лично я бы отказался от использования IP-адресов, просто потому, что IP-адреса сервера меняются, тогда как имена хостов, как правило, являются статическими. – Fredulom

+0

val file = sc.textFile ("hdfs: //localhost/user/Cloudera/temp.txt") путь ошибок для ошибок не существует –

 Смежные вопросы

  • Нет связанных вопросов^_^