删除最小 pyspark 单元测试中的警告和日志记录

Jor*_*tao 5 python testing pyspark

我正在为一些依赖并使用 PySpark 的库编写一组单元测试。为此,我正在使用这样的东西:

import unittest

import pyspark
from pyspark.sql.types import Row


class PySparkTestCase(unittest.TestCase):

    def setUp(cls):
        conf = pyspark.SparkConf().setMaster('local[1]').setAppName("testing")
        cls.spark = pyspark.SQLContext(pyspark.SparkContext(conf=conf))

    def tearDown(cls):
        cls.spark._sc.stop()

    def test_basic(self):
        instance = self.spark.createDataFrame(data=[Row(a=1.0, b='s'), Row(a=1.0, b='s')])
        self.assertEqual(instance.count(), 2)
Run Code Online (Sandbox Code Playgroud)

并执行 ( Python 3.7.0, pyspark==2.3.1),如

python -m unittest example
Run Code Online (Sandbox Code Playgroud)

测试通过,但有一条日志消息和 2 条警告:

2018-09-08 12:14:15 警告 NativeCodeLoader:62 - 无法为您的平台加载本机 hadoop 库...在适用的情况下使用内置 java 类

将默认日志级别设置为“WARN”。

要调整日志记录级别,请使用 sc.setLogLevel(newLevel)。对于 SparkR,请使用 setLogLevel(newLevel)。

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py:839: ResourceWarning: 子进程 13349 仍在运行 ResourceWarning, source=self)

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/_bootstrap.py:219:ImportWarning:无法解析来自__spec__或 的包__package__,退回__name____path__ 返回 f(*args, **kwds )


在 16.361 秒内完成 1 次测试

好的

  1. 我应该担心这些吗?
  2. 如果没有,我该如何抑制此文本的显示?