我有两个以下格式的哈希
mydetails[x['Id']] = x['Amount']
Run Code Online (Sandbox Code Playgroud)
这将包含像
hash1 = {"A"=>"0", "B"=>"1","C"=>"0", "F"=>"1"}
hash2 = {"A"=>"0", "B"=>"3","C"=>"0", "E"=>"1"}
Run Code Online (Sandbox Code Playgroud)
我期待输出类似于:
哈希的差异:"B,F,E"
很感谢任何形式的帮助.
我需要根据特定Partition键将数据写入 s3 ,这可以通过使用write.partitionBy. 但是,在这种情况下,我只需要在每个路径中写入一个文件。我正在使用下面的代码来做到这一点。
orderFlow.coalesce(1).write.partitionBy("SellerYearMonthWeekKey")
.mode(SaveMode.Overwrite)
.format("com.databricks.spark.csv")
.option("delimiter", ",")
.option("header", "true")
.save(outputS3Path + "/")
Run Code Online (Sandbox Code Playgroud)
你能帮我找到实现这一目标的最佳方法吗?在上述情况下,我收到 OutOfMemory 错误。
在上面的代码中,我试图通过 Marshal 将我的密钥转换为字节数组。虽然我成功地做到了,但当我看到 Marshalled 字符串时,我\在 json 键之前看到了转义字符。你能帮我删除它吗?
func GetBytes(key interface{}) ([]byte, error) {
b, err := json.Marshal(key)
if err != nil {
return nil, err
}
log.Println("%%%%%%%%%%")
log.Printf("%+v\n", key)
log.Println("##########")
log.Println(string(b));
return b, nil
}
Run Code Online (Sandbox Code Playgroud)
电流输出:
%%%%%%%%%%
{"entityId":5010740929,"eventTime":1542706233458}
##########
"{\"entityId\":5010740929,\"eventTime\":1542706233458}"
Run Code Online (Sandbox Code Playgroud)