Pyspark 从sqoop导入序列文件
我使用sqoop导入了一个表,并将其保存为序列文件 如何将此文件读入RDD或数据帧 我已经尝试了Pyspark 从sqoop导入序列文件,pyspark,sqoop,sequencefile,Pyspark,Sqoop,Sequencefile,我使用sqoop导入了一个表,并将其保存为序列文件 如何将此文件读入RDD或数据帧 我已经尝试了sc.sequenceFile(),但我不确定作为keyClass和value类传递什么。我尝试使用org.apache.hadoop.io.Text、org.apache.hadoop.io.LongWritable for keyClass和valueClass 但它没有起作用。我正在使用pyspark读取文件 在python中不起作用,但在SCALA中起作用: 您需要执行以下步骤: 步骤1: 如
sc.sequenceFile()
,但我不确定作为keyClass和value类传递什么。我尝试使用org.apache.hadoop.io.Text、org.apache.hadoop.io.LongWritable for keyClass和valueClass
但它没有起作用。我正在使用pyspark读取文件 在python中不起作用,但在SCALA中起作用: 您需要执行以下步骤: 步骤1: 如果要从sqoop导入序列文件,则会生成一个jar文件,在读取序列文件时需要将其用作ValueClass。这个jar文件通常放在/tmp文件夹中,但您可以使用--bindir选项将其重定向到特定文件夹(即,重定向到本地文件夹而不是hdfs) 例如: sqoop导入--连接jdbc:mysql://ms.itversity.com/retail_export -- 用户名retail_user--密码itversity--表customers--m1--目标目录'/user/srikarthik/udemy/practice4/problem2/outputseq'--作为序列文件--删除目标目录--bindir/home/srikarthik/sqoopjars/ 步骤2: 此外,您还需要从以下链接下载jar文件: 步骤3: 假设customers表是使用sqoop作为序列文件导入的。 运行sparkshell--jars路径到customers.jar,sqoop-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
步骤4:现在在spark外壳内运行以下命令
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)
您可以使用package读取带有DataFrame API的序列文件,而无需事先了解模式(也称为keyClass和valueClass)。请注意,当前版本仅与Spark 2.4兼容
$pyspark--packages-seq-datasource-v2-0.2.0.jar
df=spark.read.format(“seq”).load(“data.seq”)
df.show()
对语法和演示文稿进行了少量编辑,并删除了不必要的文本。熟悉这些标签的人可能会对这个问题有所帮助,以防有标签知识的志愿者会增加更多的清晰度。问题仍然需要OP的关注,以包括一个问题。