我使用sqoop导入了一个表,并将其保存为序列文件。
如何将此文件读入rdd或Dataframe?
我试过了 sc.sequenceFile()
但我不确定传递什么作为keyclass和value类。我尝试使用org.apache.hadoop.io.text、org.apache.hadoop.io.longwritable for keyclass和valueclass,但没有成功。我正在用pyspark读取文件。
我使用sqoop导入了一个表,并将其保存为序列文件。
如何将此文件读入rdd或Dataframe?
我试过了 sc.sequenceFile()
但我不确定传递什么作为keyclass和value类。我尝试使用org.apache.hadoop.io.text、org.apache.hadoop.io.longwritable for keyclass和valueclass,但没有成功。我正在用pyspark读取文件。
1条答案
按热度按时间2skhul331#
在python中不起作用,但在scala中起作用:
您需要执行以下步骤:
step1:如果您要从sqoop导入sequence文件,则会生成一个jar文件,您需要在读取sequencefile时将其用作valueclass。这个jar文件通常放在/tmp文件夹中,但是您可以使用--bindir选项将它重定向到一个特定的文件夹(即,重定向到本地文件夹而不是hdfs)。
示例:sqoop import--connectjdbc:mysql://ms.itversity.com/retail\u export--username retail\u user--password itversity--table customers-m 1--target dir'/user/srikarthik/udemy/practice4/problem2/outputseq'--as sequencefile--delete target dir--bindir/home/srikarthik/sqoopjars/
第二步:你还需要从下面的链接下载jar文件:http://www.java2s.com/code/jar/s/downloadsqoop144hadoop200jar.htm
步骤3:假设customers表是使用sqoop作为序列文件导入的。运行sparkshell--jars path to customers.jar,sqoop-1.4.4-hadoop200.jar
例子:
第四步:现在在spark shell中运行下面的命令