基本上,我必须使用Spark分析HDFS上的一些复杂的JSON.
我使用"for comprehensions"来(预)过滤json的jSON和"extract"方法,将它包装成一个case类
这个工作正常!
def foo(rdd: RDD[String]) = {
case class View(C: String,b: Option[Array[List[String]]], t: Time)
case class Time($numberLong: String)
implicit val formats = DefaultFormats
rdd.map { jsonString =>
val jsonObj = parse(jsonString)
val listsOfView = for {
JObject(value) <- jsonObj
JField(("v"), JObject(views)) <- value
normalized <- views.map(x => (x._2))
} yield normalized
}
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好!
当我尝试将(预)过滤的JSON提取到我的CaseClass时,我得到这个:
线程"main"中的异常org.apache.spark.SparkException:由于阶段失败而中止作业:任务不可序列化:java.io.NotSerializableException:org.json4s.DefaultFormats $
这里带有提取的代码:
def foo(rdd: RDD[String]) = {
case class View(C: String,b: Option[Array[List[String]]], t: Time)
case class Time($numberLong: String)
implicit val formats = DefaultFormats …Run Code Online (Sandbox Code Playgroud) 在GKE上运行Kubernetes
使用头盔安装了具有最新稳定版本的Nginx控制器。
一切正常,除了添加白名单-源范围注释结果之外,因为我完全无法使用我的服务。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: staging-ingress
namespace: staging
annotations:
kubernetes.io/ingress.class: nginx
ingress.kubernetes.io/whitelist-source-range: "x.x.x.x, y.y.y.y"
spec:
rules:
- host: staging.com
http:
paths:
- path: /
backend:
serviceName:staging-service
servicePort: 80
我连接到控制器Pod的Ingress配置
,并检查了Nginx配置,发现了这一点:
# Deny for staging.com/
geo $the_real_ip $deny_5b3266e9d666401cb7ac676a73d8d5ae {
default 1;
x.x.x.x 0;
y.y.y.y 0;
}
Run Code Online (Sandbox Code Playgroud)
好像他将我拒之门外,而不是将该IP列入白名单。但这也锁定了所有其他地址...我从staging.com主机获得了403。
我试图用运行时指定的参数创建一个单例对象.例:
object NetworkPusher {
val networkAdress = ???
...
}
Run Code Online (Sandbox Code Playgroud)
想象一下,networkAdress param来自命令行.有人可以帮我解决这个问题吗?谢谢!
我很幸运将大型单片系统从Java7和Scala 2.10迁移到Java8和Scala 2.11.到现在为止还挺好.该应用程序正在使用SpringSecurity.
在将spring库更新到最新库之后,我们遇到了validateMessage方法中Wss4jSecurityInterceptor中抛出的空指针异常:
if (validationActionsVector.contains(WSConstants.NO_SECURITY)) {
return;
}
Run Code Online (Sandbox Code Playgroud)
运行测试期间发生异常.但是,在我发布大量代码(测试/实现......)之前,可能有人知道在哪里解决问题 - 或者应该更详细地研究哪个部分.
编辑:
一个有趣的事实是,通过使用Java7和Scala 2.10(具有相同的库版本)进行编译,不会发生空指针异常.