我想向数据框添加一个新的地图类型列,如下所示:
|-- cMap: map (nullable = true)
| |-- key: string
| |-- value: string (valueContainsNull = true)
Run Code Online (Sandbox Code Playgroud)
我试过代码:
df.withColumn("cMap", lit(null).cast(MapType)).printSchema
Run Code Online (Sandbox Code Playgroud)
错误是:
<console>:132: error: overloaded method value cast with alternatives:
(to: String)org.apache.spark.sql.Column <and>
(to: org.apache.spark.sql.types.DataType)org.apache.spark.sql.Column
cannot be applied to (org.apache.spark.sql.types.MapType.type)
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以将新列转换为 Map 或 MapType?谢谢
我想使用 cmake 从 protobuf 编译并生成库。但我无法在 CMakeLists.txt 中分配原始文件路径。问题是使用从父文件夹的相对导入(导入“modules/common/proto/abc.pb.h”)的其他 .proto 文件无法正确识别导入的原型。
\n\n直接 protoc 命令中的不同文件路径将生成不同的命名空间:
\n\nprotoc --cpp_out=proto proto/person.proto (namespace is protobuf_proto_2fperson_2eproto)\nRun Code Online (Sandbox Code Playgroud)\n\n和
\n\nprotoc --cpp_out=./ person.proto (namespace is protobuf_person_2eproto)\nRun Code Online (Sandbox Code Playgroud)\n\n如何在 CMakeLists.txt 中制作它并使用像 protobuf_proto_2fperson_2eproto 这样的结构化命名空间生成 .cc 文件?谢谢。
\n\n我的文件列表如下:
\n\n../test/\n`-- proto\n |-- CMakeLists.txt\n |-- demo.proto\n `-- person.proto\nRun Code Online (Sandbox Code Playgroud)\n\n在演示.proto中:
\n\nsyntax = "proto2";\n\npackage tutorial;\n\nimport "proto/person.proto";\n\nmessage AddressBook {\n repeated Person people = 1;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n亲自.proto:
\n\nsyntax = "proto2";\n\npackage tutorial;\n\nmessage Person {\n required string name = 1;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我的CMakeLists.txt是\xef\xbc\x9a
\n\n …我在Javascript中创建一个数组.我想将数组用于键值对.
我可以成功添加新项目并删除项目,但它的长度始终为0.
实际上我遇到的问题是当我想将它转换为JSON字符串时,它显示空字符串:"[]".我只是想知道他们是否相关.我也想知道为什么我不能转换它.
下面是调试信息,它显示数组包含3个对象但长度为0.浏览器是用于Ubuntu的Firefox 44.0.
谢谢!
研究员@georg的想法,我将索引限制在1000并将其余代码保留为以前.一切正常,包括JSON部分.下图显示在我的数组中,实际有4个元素,最大索引是805.
最新的发现,数组真的和最大的索引号一样长.元素的其余部分是Null.
我需要合并两个数据框并通过键组合列。这两个数据格式具有相同的架构,例如:
root
|-- id: String (nullable = true)
|-- cMap: map (nullable = true)
| |-- key: string
| |-- value: string (valueContainsNull = true)
Run Code Online (Sandbox Code Playgroud)
我想按“ id”分组并将“ cMap”聚合在一起以进行重复数据删除。我尝试了代码:
val df = df_a.unionAll(df_b).groupBy("id").agg(collect_list("cMap") as "cMap").
rdd.map(x => {
var map = Map[String,String]()
x.getAs[Seq[Map[String,String]]]("cMap").foreach( y =>
y.foreach( tuple =>
{
val key = tuple._1
val value = tuple._2
if(!map.contains(key))//deduplicate
map += (key -> value)
}))
Row(x.getAs[String]("id"),map)
})
Run Code Online (Sandbox Code Playgroud)
但是似乎collect_list不能用于映射结构:
org.apache.spark.sql.AnalysisException: No handler for Hive udf class org.apache.hadoop.hive.ql.udf.generic.GenericUDAFCollectList because: Only primitive type arguments are …Run Code Online (Sandbox Code Playgroud) 我现在正在开发一个android应用程序。当我要启动服务时,我遇到问题:不允许绑定到服务意图。该服务是Yotaphone背屏服务。
我正在搜索问题,信息很少,大多数都不是同类问题。我不知道哪一部分出了问题。
我按照指示进行操作:http : //mwiki.yotaphone.com/wiki/Building_First_App。
MainActivity中的onStart()函数:
@Override
protected void onStart() {
super.onStart();
Intent bsIntent = new Intent(this, MyBSActivity.class);
this.startService(bsIntent);
}
Run Code Online (Sandbox Code Playgroud)
Yotaphone背屏服务:
public class MyBSActivity extends BSActivity {
@Override
protected void onBSCreate() {
super.onBSCreate();
setBSContentView(R.layout.bs_activity);
}}
Run Code Online (Sandbox Code Playgroud)
错误说明:
04-24 18:27:12.659 28763-28763/com.pli.yotaphone2 E/AndroidRuntime? FATAL EXCEPTION: main
Process: com.pli.yotaphone2, PID: 28763
java.lang.RuntimeException: Unable to start service com.pli.yotaphone2.MyBSActivity@42624840 with Intent { cmp=com.pli.yotaphone2/.MyBSActivity }: java.lang.SecurityException: Not allowed to bind to service Intent { act=yotaphone.intent.action.GET_SDK_BINDER }
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2735)
at android.app.ActivityThread.access$2100(ActivityThread.java:138)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1296)
at android.os.Handler.dispatchMessage(Handler.java:102)
at …Run Code Online (Sandbox Code Playgroud) java android securityexception android-intent android-service