当前位置: 首页>>代码示例>>Python>>正文


Python SparkContext.show_profiles方法代码示例

本文整理汇总了Python中pyspark.SparkContext.show_profiles方法的典型用法代码示例。如果您正苦于以下问题:Python SparkContext.show_profiles方法的具体用法?Python SparkContext.show_profiles怎么用?Python SparkContext.show_profiles使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pyspark.SparkContext的用法示例。


在下文中一共展示了SparkContext.show_profiles方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: ProfilerTests

# 需要导入模块: from pyspark import SparkContext [as 别名]
# 或者: from pyspark.SparkContext import show_profiles [as 别名]
class ProfilerTests(PySparkTestCase):

    def setUp(self):
        self._old_sys_path = list(sys.path)
        class_name = self.__class__.__name__
        conf = SparkConf().set("spark.python.profile", "true")
        self.sc = SparkContext('local[4]', class_name, conf=conf)

    def test_profiler(self):
        self.do_computation()

        profilers = self.sc.profiler_collector.profilers
        self.assertEqual(1, len(profilers))
        id, profiler, _ = profilers[0]
        stats = profiler.stats()
        self.assertTrue(stats is not None)
        width, stat_list = stats.get_print_list([])
        func_names = [func_name for fname, n, func_name in stat_list]
        self.assertTrue("heavy_foo" in func_names)

        old_stdout = sys.stdout
        sys.stdout = io = StringIO()
        self.sc.show_profiles()
        self.assertTrue("heavy_foo" in io.getvalue())
        sys.stdout = old_stdout

        d = tempfile.gettempdir()
        self.sc.dump_profiles(d)
        self.assertTrue("rdd_%d.pstats" % id in os.listdir(d))

    def test_custom_profiler(self):
        class TestCustomProfiler(BasicProfiler):
            def show(self, id):
                self.result = "Custom formatting"

        self.sc.profiler_collector.profiler_cls = TestCustomProfiler

        self.do_computation()

        profilers = self.sc.profiler_collector.profilers
        self.assertEqual(1, len(profilers))
        _, profiler, _ = profilers[0]
        self.assertTrue(isinstance(profiler, TestCustomProfiler))

        self.sc.show_profiles()
        self.assertEqual("Custom formatting", profiler.result)

    def do_computation(self):
        def heavy_foo(x):
            for i in range(1 << 18):
                x = 1

        rdd = self.sc.parallelize(range(100))
        rdd.foreach(heavy_foo)
开发者ID:Brett-A,项目名称:spark,代码行数:56,代码来源:test_profiler.py

示例2: test_profiler_disabled

# 需要导入模块: from pyspark import SparkContext [as 别名]
# 或者: from pyspark.SparkContext import show_profiles [as 别名]
 def test_profiler_disabled(self):
     sc = SparkContext(conf=SparkConf().set("spark.python.profile", "false"))
     try:
         self.assertRaisesRegexp(
             RuntimeError,
             "'spark.python.profile' configuration must be set",
             lambda: sc.show_profiles())
         self.assertRaisesRegexp(
             RuntimeError,
             "'spark.python.profile' configuration must be set",
             lambda: sc.dump_profiles("/tmp/abc"))
     finally:
         sc.stop()
开发者ID:Brett-A,项目名称:spark,代码行数:15,代码来源:test_profiler.py


注:本文中的pyspark.SparkContext.show_profiles方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。