在 Pyspark 中将 Sqoop 连接到 Hadoop
Connect Sqoop to Hadoop in Pyspark
这是我在 Pyspark 上使用的代码。我目前正在尝试将 Sqoop 连接到 HDFS。
我对这一切都是陌生的。我不确定要使用什么库。
from pysqoop.SqoopImport import Sqoop
sqoop = Sqoop(help=True)
code = sqoop.perform_import()
sqoop = Sqoop(fs='hdfs://localhost:8020', table='myTable', target_dir='hdfs://user/amel',
connect='jdbc:mysql://localhost:3306/testDb',
username='Amel', password='Amel@-1998', num_mappers=2,
bindir='/usr/local/hadoop/sqoop/bin')
sqoop.perform_import()
这是错误
/home/amel/PycharmProjects/pythonProject/venv/bin/python /home/amel/PycharmProjects/pythonProject/Hello.py
sqoop import None --help
name 'run' is not defined
sqoop import None -fs hdfs://localhost:8020 --table myTable --target-dir hdfs://user/amel --connect jdbc:mysql://localhost:3306/testDb --username Amel --password Amel@-1998 --num-mappers 2 --bindir /usr/local/hadoop/sqoop/bin --help
name 'run' is not defined
Process finished with exit code 0
通知
Sqoop 作为 Apache 项目已经退役,Spark 可以替代 Sqoop。你不应该一起使用它们。
无论如何,pysqoop
库似乎已损坏,并且在一年多的时间里似乎没有人提交 PR 来修复它(尽管我做了)。它显然没有单元测试来捕获该错误,因此我不建议以当前形式使用它。
下面是从 Spark 文档复制的部分示例,用于读取 JDBC 数据库并以 Parquet 格式写入 HDFS
import pyspark
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("SqoopReplacement").getOrCreate()
jdbcDF = spark.read \
.format("jdbc") \
.option("url", "jdbc:mysql://localhost:3306") \
.option("dbtable", "myTable") \
.option("user", "Amel") \
.option("password", "Amel@-1998") \
.load()
# Saving data to HDFS as Parquet
jdbcDF.write.parquet("hdfs://some/path")
这是我在 Pyspark 上使用的代码。我目前正在尝试将 Sqoop 连接到 HDFS。 我对这一切都是陌生的。我不确定要使用什么库。
from pysqoop.SqoopImport import Sqoop
sqoop = Sqoop(help=True)
code = sqoop.perform_import()
sqoop = Sqoop(fs='hdfs://localhost:8020', table='myTable', target_dir='hdfs://user/amel',
connect='jdbc:mysql://localhost:3306/testDb',
username='Amel', password='Amel@-1998', num_mappers=2,
bindir='/usr/local/hadoop/sqoop/bin')
sqoop.perform_import()
这是错误
/home/amel/PycharmProjects/pythonProject/venv/bin/python /home/amel/PycharmProjects/pythonProject/Hello.py
sqoop import None --help
name 'run' is not defined
sqoop import None -fs hdfs://localhost:8020 --table myTable --target-dir hdfs://user/amel --connect jdbc:mysql://localhost:3306/testDb --username Amel --password Amel@-1998 --num-mappers 2 --bindir /usr/local/hadoop/sqoop/bin --help
name 'run' is not defined
Process finished with exit code 0
通知
Sqoop 作为 Apache 项目已经退役,Spark 可以替代 Sqoop。你不应该一起使用它们。
无论如何,pysqoop
库似乎已损坏,并且在一年多的时间里似乎没有人提交 PR 来修复它(尽管我做了)。它显然没有单元测试来捕获该错误,因此我不建议以当前形式使用它。
下面是从 Spark 文档复制的部分示例,用于读取 JDBC 数据库并以 Parquet 格式写入 HDFS
import pyspark
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("SqoopReplacement").getOrCreate()
jdbcDF = spark.read \
.format("jdbc") \
.option("url", "jdbc:mysql://localhost:3306") \
.option("dbtable", "myTable") \
.option("user", "Amel") \
.option("password", "Amel@-1998") \
.load()
# Saving data to HDFS as Parquet
jdbcDF.write.parquet("hdfs://some/path")