当我试图用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)
我以前用相同的代码保存了一些箱图,但这一次,它不起作用.
我有一个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)
有什么办法可以减少"执行计算时间"所花费的时间吗?
我正在尝试使用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) 假设我有一个类定义为:
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) 我是 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 连接起来(还)?
我在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
我有带有受保护静态方法的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代码生成使用它.
发生了什么?
我正在努力在Python中的TensorFlow中实现激活功能.
代码如下:
def myfunc(x):
if (x > 0):
return 1
return 0
Run Code Online (Sandbox Code Playgroud)
但我总是得到错误:
不允许使用
tf.TensorPython作为Pythonbool.使用if t is not None:
machine-learning deep-learning keras tensorflow activation-function
我们如何使用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 ×6
apache-spark ×4
dotty ×2
scala-3 ×2
bash ×1
confd ×1
gradle ×1
gradle-scala ×1
java ×1
keras ×1
matplotlib ×1
plot ×1
python ×1
seaborn ×1
shell ×1
tensorflow ×1
timestamp ×1