在EMR上使用笔记本时,如何在PySpark中包含软件包?

时间:2019-04-14 19:21:45

标签: amazon-web-services pyspark pyspark-sql amazon-emr

我目前正在尝试使用带有EMR的笔记本分析一些数据。我遇到的问题是,当我使用PySpark内核时,我无法弄清楚该如何包含特定的工件。具体来说,我正在尝试包含org.apache.spark:spark-sql-kafka-0-10_2.11:2.4.0,通常在启动PySpark环境时通过使用--packages在命令行中通常这样做论点。我是否必须包括Bootstrap操作?我不确定我什至会放在那里。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

我在reddit上询问,EMR团队的某人回答:

您可以使用#include <tuple> #include <iostream> #include <utility> template <std::size_t... Idx> auto make_index_dispatcher(std::index_sequence<Idx...>) { return [](auto&& f) { (f.template operator()<Idx>(), ...); }; } // ......................^^^^^^^^^^^^^^^^^^^^^^^^^^^^ modified lambda call template <std::size_t N> auto make_index_dispatcher() { return make_index_dispatcher(std::make_index_sequence<N>{}); } template <typename Tuple, typename Func> void for_each(Tuple&& t, Func&& f) { constexpr auto n = std::tuple_size<std::decay_t<Tuple>>::value; auto dispatcher = make_index_dispatcher<n>(); dispatcher([&f, &t]<std::size_t I>() { f(std::get<I>(std::forward<Tuple>(t))); }); } // ..................^^^^^^^^^^^^^^^^^ template parameter added, argument removed int main() { for_each(std::make_tuple(1, 42.1, "hi"), [](auto&& e) {std::cout << e << ","; }); } 块作为笔记本中的第一个单元格来指定其他程序包。您的情况如下所示:

%%configure

下面是加载了spark-avro的example notebook的屏幕截图。

(免责声明:EMR团队中的AWS员工?)