mysql - 使用 Sqoop 将来自 MySQL 的数据加载到 PIG 中

标签 mysql apache-pig sqoop bigdata

我正在尝试使用 Sqoop 和 PIG,所以我见过的几乎所有文档都说 Sqoop 用于从 MySQL 获取数据并将其放入 HDFS 存储库中,然后使用 PIG 来获取这些数据。相反,我想知道是否可以直接从 Pig 读取 MySQL 表。如果你们的答案是肯定的,请分享一个示例脚本。谢谢,我很感激。

最佳答案

您无法从 PIG 直接访问 MySQL。

您有两个选择:

  • 使用 Sqoop 将数据获取到 HDFS,然后使用 PIG 脚本对其进行分析。

  • 编写 UDF 并创建与 MySQL 的连接并获取数据并进行分析。这更像是常规的 Java JDBC 代码。

如果您的数据很大,选项 b 将是一个糟糕的选择。 不确定你的要求,但你正在扼杀 Sqoop 的美丽。 Sqoop 优雅地创建映射器,映射器又创建与数据库的多个连接以更快地提取数据。

也许您可以分享更多详细信息,说明您尝试此操作的具体原因。

关于mysql - 使用 Sqoop 将来自 MySQL 的数据加载到 PIG 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43878900/

相关文章:

mysql - MySQL 可以返回字符串中与正则表达式匹配的部分吗?

mysql - ld : library not found for -lzstd while bundle install for mysql2 gem Ruby on macOS Big Sur 11. 4

hadoop - PIG - 加载错误继续

hadoop - Oozie + Sqoop : JDBC Driver Jar Location

hadoop - Sqoop + S3 + Parquet 导致 Wrong FS 错误

Mysql Spring Data JPA bool 值

hadoop - 如何使用水槽从大型机文件中提取数据到hadoop HDFS

hadoop - 在Hive中对非结构化数据执行逐字计数时出错

jdbc - 如何使用自定义 JDBC 驱动程序运行 Sqoop?

mysql - Rails 3.1 破坏了 MySql::Time 的排序