【问题标题】:how to load mysql data from hdfs into pyspark如何将mysql数据从hdfs加载到pyspark
【发布时间】:2019-12-23 04:02:58
【问题描述】:

我使用 sqoop 将表从 mysql 导入到 hdfs 位置 /user/cloudera/table1,现在应该使用什么命令将该表加载到 pyspark 代码中。我只是在编写简单的代码,如下所示。我使用的是 cloudera CDH 5.13。谢谢

from pyspark import SparkContext, SparkConf
if __name__ == "__main__":
 # create Spark context with Spark configuration
 conf = SparkConf().setAppName("Spark Count")
 sc = SparkContext(conf=conf)
 data = code here to import table from hdfs

【问题讨论】:

  • 你的hdfs文件是什么格式的?
  • 我刚刚使用了命令 --> sqoop import --connect jdbc:mysql://quickstart.cloudera:3306/database1 --username root --password cloudera --table customers
  • 你能看到hdfs中文件的格式吗?如果是 avro/parquet/csv/txt?
  • 你能告诉我如何检查吗..谢谢你的帮助:)
  • 使用hdfs dfs -ls,找到你的文件并查看格式

标签: mysql pyspark sqoop


【解决方案1】:

Sqoop 默认以文本格式导入数据,或者我们可以使用 (--as-textfile) 选项显式设置它。

参考:Sqoop Documentation 阅读 7.2.8。文件格式以便更好地理解。

要手动查看文件格式,请使用 hdfs cat 命令。

ls 用于列出路径下的文件。 cat 用于打开选定的文件。

您也可以在以下命令中使用 hdfs 代替 hadoop。

hadoop fs -ls /user/cloudera/table1
hadoop fs -cat /user/cloudera/table1/samplefile.txt

注意:如果数据为可读格式,则为文本格式。

要从 pyspark 中的 hdfs 导入数据,您可以使用 textFile 选项。

textFile = sc.textFile("hdfs://namenodehost/user/cloudera/table1/samplefile.txt")
textFile.first()

参考:reading-a-file-in-hdfs-from-pyspark

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    相关资源
    最近更新 更多