如何捕获pyspark foreachPartition的日志输出?

时间:2016-12-20 06:59:11

标签: python pyspark spark-streaming

pyspark

当我在foreachRdd方法中使用print()时,它可以工作!

topic_rdd = lines.map(lambda x: get_topic_rdd(x)).filter(lambda x: x[0]!= None)

topic_rdd.foreachRDD(lambda x: x.foreachPartition(lambda y: echo(y)))

我可以使用spark-on-yarn

查看登录控制台

但是如果我使用foreachPartition的方法,它就看不到任何打印日志()

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    <LinearLayout
        android:id="@+id/chart0"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
    </LinearLayout>
    <LinearLayout
        android:id="@+id/chart1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:orientation="horizontal">
    </LinearLayout>
    <LinearLayout
        android:id="@+id/chart2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:orientation="horizontal">
    </LinearLayout>
    <LinearLayout
        android:id="@+id/chart3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:orientation="horizontal">
    </LinearLayout>
    </LinearLayout>
</ScrollView>

如果我想查看日志,我需要输入不同的分区来查看日志吗?我可以在单一控制台中看到日志。顺便说一下,我可以在单控制台中看到带有scala但是python的日志。

1 个答案:

答案 0 :(得分:0)

rdd.foreachRDD正在驱动程序节点上运行,该节点向您的终端发送消息

rdd.foreachPartition正在工作人员节点上运行,该节点向工作人员的终端发送消息,您无法看到

如果要查看日志,只需将其另存为文件