如何查询具有复杂类型(如地图/数组)的RDD?例如,当我写这个测试代码时:
case class Test(name: String, map: Map[String, String])
val map = Map("hello" -> "world", "hey" -> "there")
val map2 = Map("hello" -> "people", "hey" -> "you")
val rdd = sc.parallelize(Array(Test("first", map), Test("second", map2)))
Run Code Online (Sandbox Code Playgroud)
我虽然语法如下:
sqlContext.sql("SELECT * FROM rdd WHERE map.hello = world")
Run Code Online (Sandbox Code Playgroud)
要么
sqlContext.sql("SELECT * FROM rdd WHERE map[hello] = world")
Run Code Online (Sandbox Code Playgroud)
但我明白了
无法访问MapType类型中的嵌套字段(StringType,StringType,true)
和
org.apache.spark.sql.catalyst.errors.package $ TreeNodeException:未解析的属性
分别.
我有一个包含 Scala (2.13.1) 和 Java 文件的 sbt 项目。
\n我想使用 Java 14 编译 java 文件,包括预览功能。
\n我该怎么做?
按照上面的 oracle 文档,我尝试设置 javaOptions + javacOptions:
\njavaOptions ++= Seq("--enable-preview"), // when running\njavacOptions ++= Seq("--enable-preview", "--release", "14"), // when compiling\nRun Code Online (Sandbox Code Playgroud)\n但是当我编译一个使用预览功能的简单 Java 文件时,例如:
\npackage example;\n\npublic record Person(String name, Integer age) {}\nRun Code Online (Sandbox Code Playgroud)\n我得到:
\n\n\n[错误] /Users/dvir/learn/playground/src/main/java/example/Person.java:3:15: 类型声明的非法开始
\n
\n[错误] 公共记录 Person(字符串名称, 整数年龄) {}
\n[错误] ^
注意:\n我在 Mac 上使用AdoptOpenJDK 14。
\n我的JAVA_HOME是/Library/Java/JavaVirtualMachines/adoptopenjdk-14.jdk/Contents/Home.
\n使用时jshell …
我正在使用eclipse和netbeans for c,我想查看在调试时在内存中动态分配的变量值(在eclipse和netbeans中).
由于某种原因,我只能看到指针本身的值,它是第一个项目.
用以下代码说明:
int foo[10];
Run Code Online (Sandbox Code Playgroud)
我可以稍后检查整个数组的值(调试时).例如,我可以在watch窗口中查看foo [7]的值.
但是这个代码:
int *bar = malloc(10*sizeof(int));
Run Code Online (Sandbox Code Playgroud)
我只能检查bar指向的位置,以及bar[0](但不是其他值)的值.
我怎样才能观察阵列的所有值?
在eclipse中:右键单击Variables窗口中的所需变量- >选择Display As Array - >填写起始索引和数组长度.
在netbeans中:在Watches窗口中添加一个具有以下格式的新手表:
*((bar)+0)@10
Run Code Online (Sandbox Code Playgroud)
这里bar应该是指针的名字,
0应该是你开始索引,并10应其长度
如果我可以添加个人的东西:这是我在stackoverflow上的第一个消息.希望你觉得它有用.
我正在编写一个 Spark 应用程序,并使用 sbt 程序集创建一个 fat jar,我可以将其发送到 Spark-submit(通过 Amazon EMR)。我的应用程序使用 typesafe-config,并reference.conf在我的resources目录中包含一个文件。我的 jar 位于 Amazon S3 上,我使用该命令aws emr add-steps..创建一个新的 Spark 作业(该作业将 jar 下载到集群并将其发送到 Spark-submit)。我知道一般来说,我可以用来application.conf覆盖设置。然而,由于我使用 Spark (和一个 fat jar),我需要某种方法来部署我的覆盖。
使用 Spark 时覆盖应用程序配置设置的推荐方法是什么?