ConsoleBuffer' 对象没有属性 'isatty'
ConsoleBuffer' object has no attribute 'isatty'
我在 databricks 社区版上使用 sparkdl 进行图像分类。
我添加了所有图书馆的。
我已经使用图像数据创建了数据框。
from pyspark.ml.classification import LogisticRegression
from pyspark.ml import Pipeline
from sparkdl import DeepImageFeaturizer
featurizer = DeepImageFeaturizer(inputCol="image", outputCol="features", modelName="InceptionV3")
lr = LogisticRegression(maxIter=20, regParam=0.05, elasticNetParam=0.3, labelCol="label")
p = Pipeline(stages=[featurizer, lr])
p_model = p.fit(train_df)
AttributeError Traceback (most recent call last)
<command-2468766328144961> in <module>()
7 p = Pipeline(stages=[featurizer, lr])
8
----> 9 p_model = p.fit(train_df)
/databricks/spark/python/pyspark/ml/base.py in fit(self, dataset, params)
62 return self.copy(params)._fit(dataset)
63 else:
---> 64 return self._fit(dataset)
65 else:
66 raise ValueError("Params must be either a param map or a list/tuple of param maps, "
/databricks/spark/python/pyspark/ml/pipeline.py in _fit(self, dataset)
104 if isinstance(stage, Transformer):
105 transformers.append(stage)
--> 106 dataset = stage.transform(dataset)
107 else: # must be an Estimator
108 model = stage.fit(dataset)
从你的问题标题来看,你似乎在 Databricks Python 笔记本中遇到了 AttributeError: 'ConsoleBuffer' object has no attribute 'isatty'
错误。
如果您使用的是 Databricks Runtime 3.3 或更高版本,则应修复此错误。
在早期的 Databricks Runtime 版本中,您应该能够通过 运行 在 Python 笔记本开头的以下代码片段进行猴子修补 sys.stdout
来解决此问题:
import sys
sys.stdout.isatty = lambda: False
sys.stdout.encoding = sys.getdefaultencoding()
Databricks' Python REPL 覆盖 sys.stdout
以使用我们自己的 ConsoleBuffer
class 并且在 Databricks Runtime 3.3 之前,此 class 未实现 isatty
和 encoding
方法。
来源:我是一名 Databricks 员工,负责修复此错误。
我在 databricks 社区版上使用 sparkdl 进行图像分类。 我添加了所有图书馆的。 我已经使用图像数据创建了数据框。
from pyspark.ml.classification import LogisticRegression
from pyspark.ml import Pipeline
from sparkdl import DeepImageFeaturizer
featurizer = DeepImageFeaturizer(inputCol="image", outputCol="features", modelName="InceptionV3")
lr = LogisticRegression(maxIter=20, regParam=0.05, elasticNetParam=0.3, labelCol="label")
p = Pipeline(stages=[featurizer, lr])
p_model = p.fit(train_df)
AttributeError Traceback (most recent call last)
<command-2468766328144961> in <module>()
7 p = Pipeline(stages=[featurizer, lr])
8
----> 9 p_model = p.fit(train_df)
/databricks/spark/python/pyspark/ml/base.py in fit(self, dataset, params)
62 return self.copy(params)._fit(dataset)
63 else:
---> 64 return self._fit(dataset)
65 else:
66 raise ValueError("Params must be either a param map or a list/tuple of param maps, "
/databricks/spark/python/pyspark/ml/pipeline.py in _fit(self, dataset)
104 if isinstance(stage, Transformer):
105 transformers.append(stage)
--> 106 dataset = stage.transform(dataset)
107 else: # must be an Estimator
108 model = stage.fit(dataset)
从你的问题标题来看,你似乎在 Databricks Python 笔记本中遇到了 AttributeError: 'ConsoleBuffer' object has no attribute 'isatty'
错误。
如果您使用的是 Databricks Runtime 3.3 或更高版本,则应修复此错误。
在早期的 Databricks Runtime 版本中,您应该能够通过 运行 在 Python 笔记本开头的以下代码片段进行猴子修补 sys.stdout
来解决此问题:
import sys
sys.stdout.isatty = lambda: False
sys.stdout.encoding = sys.getdefaultencoding()
Databricks' Python REPL 覆盖 sys.stdout
以使用我们自己的 ConsoleBuffer
class 并且在 Databricks Runtime 3.3 之前,此 class 未实现 isatty
和 encoding
方法。
来源:我是一名 Databricks 员工,负责修复此错误。