小编ste*_*ino的帖子

从seaborn保存情节

当我试图用seaborn保存我的情节时,像这样:

import seaborn as sn
import pandas as pd
import matplotlib.pyplot as plt
from pylab import savefig

array = [[100,0], 
        [33,67]]

df_cm = pd.DataFrame(array)

svm = sn.heatmap(df_cm, annot=True,cmap='coolwarm', linecolor='white', linewidths=1)

svm.savefig('svm_conf.png', dpi=400)
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

AttributeError                            Traceback (most recent call last)
<ipython-input-71-5c0ae9cda020> in <module>()
----> 1 svm.savefig('svm_conf.png', dpi=400)

AttributeError: 'AxesSubplot' object has no attribute 'savefig'
Run Code Online (Sandbox Code Playgroud)

我以前用相同的代码保存了一些箱图,但这一次,它不起作用.

python plot matplotlib seaborn

6
推荐指数
2
解决办法
2万
查看次数

Spark应用程序 - 高"执行程序计算时间"

我有一个Spark应用程序,现在运行了46个小时.虽然大多数工作在25秒内完成,但特定工作需要数小时.下面提供了一些细节:

Task Time   Shuffle Read        Shuffle Write
7.5 h       2.2 MB / 257402     2.9 MB / 128601
Run Code Online (Sandbox Code Playgroud)

还有其他类似的任务时间,其中值为11.3小时,10.6小时,9.4小时等.每个小时的活动时间花费在"数据框架上的rdd:www.cacala:42.".阶段的细节显示执行者花费在"执行者计算时间"上的时间.此执行程序在DataNode 1上运行,其中CPU利用率非常正常,约为13%.其他盒子(另外4个工作节点)具有非常标称的CPU利用率.

当Shuffle Read在5000条记录内时,这非常快,并且如前所述在25秒内完成.没有任何内容附加到日志(spark/hadoop/hbase),也没有注意到任何位置/tmp/var/tmp位置,这表明某些磁盘相关活动正在进行中.

我对于出了什么问题一无所知.很长一段时间以来一直在努力解决这个问题.使用的软件版本如下:

Hadoop    : 2.7.2
Zookeeper : 3.4.9
Kafka     : 2.11-0.10.1.1
Spark     : 2.1.0
HBase     : 1.2.6
Phoenix   : 4.10.0
Run Code Online (Sandbox Code Playgroud)

spark默认文件中的一些配置.

spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://SDCHDPMAST1:8111/data1/spark-event
spark.history.fs.logDirectory    hdfs://SDCHDPMAST1:8111/data1/spark-event
spark.yarn.jars                  hdfs://SDCHDPMAST1:8111/user/appuser/spark/share/lib/*.jar
spark.driver.maxResultSize       5G
spark.deploy.zookeeper.url       SDCZKPSRV01

spark.executor.memory                   12G
spark.driver.memory                     10G
spark.executor.heartbeatInterval        60s
spark.network.timeout                   300s
Run Code Online (Sandbox Code Playgroud)

有什么办法可以减少"执行计算时间"所花费的时间吗?

scala apache-spark

6
推荐指数
1
解决办法
920
查看次数

org.apache.xbean.asm5.ClassReader中的Spark Java IllegalArgumentException

我正在尝试使用Spark 2.3.1和Java.

我按照文档中的示例进行操作,但在调用时继续得到描述不当的异常.fit(trainingData).

Exception in thread "main" java.lang.IllegalArgumentException
at org.apache.xbean.asm5.ClassReader.<init>(Unknown Source)
at org.apache.xbean.asm5.ClassReader.<init>(Unknown Source)
at org.apache.xbean.asm5.ClassReader.<init>(Unknown Source)
at org.apache.spark.util.ClosureCleaner$.getClassReader(ClosureCleaner.scala:46)
at org.apache.spark.util.FieldAccessFinder$$anon$3$$anonfun$visitMethodInsn$2.apply(ClosureCleaner.scala:449)
at org.apache.spark.util.FieldAccessFinder$$anon$3$$anonfun$visitMethodInsn$2.apply(ClosureCleaner.scala:432)
at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:733)
at scala.collection.mutable.HashMap$$anon$1$$anonfun$foreach$2.apply(HashMap.scala:103)
at scala.collection.mutable.HashMap$$anon$1$$anonfun$foreach$2.apply(HashMap.scala:103)
at scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala:230)
at scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:40)
at scala.collection.mutable.HashMap$$anon$1.foreach(HashMap.scala:103)
at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:732)
at org.apache.spark.util.FieldAccessFinder$$anon$3.visitMethodInsn(ClosureCleaner.scala:432)
at org.apache.xbean.asm5.ClassReader.a(Unknown Source)
at org.apache.xbean.asm5.ClassReader.b(Unknown Source)
at org.apache.xbean.asm5.ClassReader.accept(Unknown Source)
at org.apache.xbean.asm5.ClassReader.accept(Unknown Source)
at org.apache.spark.util.ClosureCleaner$$anonfun$org$apache$spark$util$ClosureCleaner$$clean$14.apply(ClosureCleaner.scala:262)
at org.apache.spark.util.ClosureCleaner$$anonfun$org$apache$spark$util$ClosureCleaner$$clean$14.apply(ClosureCleaner.scala:261)
at scala.collection.immutable.List.foreach(List.scala:381)
at org.apache.spark.util.ClosureCleaner$.org$apache$spark$util$ClosureCleaner$$clean(ClosureCleaner.scala:261)
at org.apache.spark.util.ClosureCleaner$.clean(ClosureCleaner.scala:159)
at org.apache.spark.SparkContext.clean(SparkContext.scala:2299)
at org.apache.spark.SparkContext.runJob(SparkContext.scala:2073)
at org.apache.spark.rdd.RDD$$anonfun$take$1.apply(RDD.scala:1358)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)
at org.apache.spark.rdd.RDD.withScope(RDD.scala:363)
at …
Run Code Online (Sandbox Code Playgroud)

java apache-spark apache-spark-ml apache-spark-mllib

6
推荐指数
1
解决办法
2240
查看次数

如何在 dotty 中解压元组中的元素类型?

假设我有一个类定义为:

case class Box[A](a: A)
Run Code Online (Sandbox Code Playgroud)

我想编写一个通用方法,(Box[A1](a1), .., Box[An](an))将元组解包为(a1, .., an)类型为 的元组(A1, .., An)

我试过Match Types没有运气:

scala> type Unpack[Bs <: Tuple] <: Tuple = Bs match {
     |   case Unit => Unit
     |   case Box[a] *: bs => a *: Unpack[bs]
     | }

scala> def unpack[Bs <: Tuple](bs: Bs): Unpack[Bs] = bs match {
     |   case () => ()
     |   case Box(a) *: as => a *: unpack(as)
     | }
2 |  case …
Run Code Online (Sandbox Code Playgroud)

scala dotty scala-3

6
推荐指数
1
解决办法
407
查看次数

有没有办法使用 Gradle 的 Scala 3 编译器(Dotty)?

我是 Gradle 和 Dotty 的新手(而且对 Scala 整体来说仍然相对较新)。我能够像这样用 Gradle 创建一个 Scala 项目:

gradle init --dsl kotlin --type scala-library --package com.stackoverflow.example
Run Code Online (Sandbox Code Playgroud)

而且我知道 Dotty 可以与 SBT 一起使用。但是有没有办法将 Dotty 与 Gradle 连接起来(还)?

scala gradle dotty gradle-scala scala-3

6
推荐指数
1
解决办法
907
查看次数

如何在键中使用正斜杠设置环境变量

有没有办法在名称中使用斜杠导出环境变量,例如:

export /myapp/db/username=someval

这篇文章表明它应该是可能的,但我无法弄清楚这样做的有效语法.

背景:

我使用confd从模板和密钥库生成配置文件.典型的商店(consul,etcd)使用分层键,例如/myapp/db/username.我希望透明地允许在使用基于环境变量的提供程序和利用分层键的配置存储之间进行切换.

bash shell environment-variables confd

5
推荐指数
1
解决办法
2857
查看次数

Spark SQL的Scala API - TimestampType - 找不到org.apache.spark.sql.types.TimestampType的编码器

我在Databricks笔记本上使用Spark 2.1和Scala 2.11

什么是TimestampType?

我们知道,从SparkSQL的文档那是官方的时间戳类型是TimestampType,这显然是对的java.sql.Timestamp一个别名:

TimestampType可以在SparkSQL的Scala API中找到

使用模式和数据集API时,我们有所不同

从Databricks的Scala Structured Streaming示例解析时{"time":1469501297,"action":"Open"}

使用Json架构 - > OK(我更喜欢使用优雅的Dataset API):

val jsonSchema = new StructType().add("time", TimestampType).add("action", StringType)

val staticInputDF = 
  spark
    .read
    .schema(jsonSchema)
    .json(inputPath)
Run Code Online (Sandbox Code Playgroud)

使用数据集API - > KO:找不到TimestampType的编码器

创建Event类

import org.apache.spark.sql.types._
case class Event(action: String, time: TimestampType)
--> defined class Event
Run Code Online (Sandbox Code Playgroud)

在databricks上从DBFS读取事件时出错.

注意:java.sql.Timestamp作为"时间"类型使用时,我们不会收到错误

val path = "/databricks-datasets/structured-streaming/events/"
val events = spark.read.json(path).as[Event]
Run Code Online (Sandbox Code Playgroud)

错误信息

java.lang.UnsupportedOperationException: No Encoder found for org.apache.spark.sql.types.TimestampType
- field (class: "org.apache.spark.sql.types.TimestampType", name: "time")
- …
Run Code Online (Sandbox Code Playgroud)

timestamp scala apache-spark apache-spark-sql apache-spark-dataset

5
推荐指数
1
解决办法
3514
查看次数

Scala 2.12.4:无法再从另一个包访问受保护的静态Java方法

我有带有受保护静态方法的java类:

package parent;

public class Parent {

    protected static void parentMethod() {
        System.out.println("I'm in parent static method");
    }

}
Run Code Online (Sandbox Code Playgroud)

在Scala 2.12.4(2.12.3)之前,我可以从另一个包中调用此方法,如下所示:

package child

import parent.Parent

class Child extends Parent {

  def childMethod = {
    println("I'm in child method and calling parentMethod")
    Parent.parentMethod()
  }

}
Run Code Online (Sandbox Code Playgroud)

但Scala 2.12.4不编译此代码.我收到错误:

错误:(9,12)在对象父类的方法parentMethod不能在对象parent.Parent访问访问到受保护的方法parentMethod不允许的,因为前缀类型parent.Parent.type不符合在包孩子在那里访问发生家长反对孩子.parentMethod()

这种访问模式对我来说非常重要,因为JOOQ代码生成使用它.

发生了什么?

scala

5
推荐指数
1
解决办法
189
查看次数

Tensorflow错误:不允许使用`tf.Tensor`作为Python`bool`

我正在努力在Python中的TensorFlow中实现激活功能.

代码如下:

def myfunc(x):
    if (x > 0):
        return 1
    return 0
Run Code Online (Sandbox Code Playgroud)

但我总是得到错误:

不允许使用tf.TensorPython作为Python bool.使用if t is not None:

machine-learning deep-learning keras tensorflow activation-function

5
推荐指数
1
解决办法
4609
查看次数

动态构建Spark SQL查询

我们如何使用Scala中的Spark动态地将列名和操作符名称传递给SQL查询?

我试过(不成功)以下内容:

spark.sql("set key_tbl=mytable")
spark.sql("select count(1) from ${key_tbl}").collect()
Run Code Online (Sandbox Code Playgroud)

scala apache-spark apache-spark-sql

5
推荐指数
2
解决办法
3802
查看次数