файлы последовательности из sq oop import - PullRequest
0 голосов
/ 21 января 2020

Я импортировал таблицу с использованием sq oop и сохранил ее как файл последовательности.

Как мне прочитать этот файл в RDD или Dataframe?

Я пробовал sc.sequenceFile(), но я не уверен, что передать как keyClass и значение Class. Я попытался использовать org. apache .had oop .io.Text, org. apache .had oop .io.LongWritable для keyClass и valueClass, но это не сработало. Я использую pyspark для чтения файлов.

1 Ответ

0 голосов
/ 29 января 2020

в python он не работает, однако в SCALA он работает:

Вам необходимо выполнить следующие шаги:

step1: если вы импортируете как файл последовательности из sq oop, есть сгенерированный файл jar, вы должны использовать его как ValueClass при чтении sequencefile. Этот jar-файл обычно помещается в папку / tmp, но вы можете перенаправить его в указанную c папку (т.е. в локальную папку, а не hdfs), используя параметр --bindir.

пример: sq oop import --connect jdb c: mysql: //ms.itversity.com/retail_export - имя пользователя retail_user --password itversity - настольные клиенты -m 1 --target-dir '/ user / srikarthik / udemy / practice4 / problem2 / outputseq '--as-sequencefile --delete-target-dir --bindir / home / srikarthik / sqoopjars /

step2: Также вам необходимо скачать файл jar по ссылке ниже: http://www.java2s.com/Code/Jar/s/Downloadsqoop144hadoop200jar.htm

step3: Предположим, таблица клиентов импортируется с использованием sq oop в качестве файла последовательности. Запустите spark-shell --jars path-to-Customers.jar, sq oop -1.4.4-hadoop200.jar

пример:

spark-shell --master yarn --jars /home/srikarthik/sqoopjars/customers.jar,/home/srikarthik/tejdata/kjar/sqoop-1.4.4-hadoop200.jar

step4: теперь запускайте под командами внутри спарк-снаряда

scala> import org.apache.hadoop.io.LongWritable

scala> val data = sc.sequenceFile[LongWritable,customers]("/user/srikarthik/udemy/practice4/problem2/outputseq")

scala> data.map(tup => (tup._1.get(), tup._2.toString())).collect.foreach(println)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...