小编apa*_*846的帖子

将数组转换为Map

我有一个像列一样的表

[{"key":"e","value":["253","203","204"]},{"key":"st","value":["mi"]},{"key":"k2","value":["1","2"]}]
Run Code Online (Sandbox Code Playgroud)

哪种格式 array<struct<key:string,value:array<string>>>

我想将列转换为以下格式:

{"e":["253","203","204"],"st":["mi"],"k2":["1","2"]}
Run Code Online (Sandbox Code Playgroud)

这是哪种类型 map<string,array<string>>

我试过爆炸阵列,但这不起作用.任何想法我怎么能在蜂巢中这样做.

sql hadoop hive hiveql

6
推荐指数
1
解决办法
289
查看次数

IOUtils.toByteArray(inputStream) 方法是否在内部关闭 inputStream 对象?

这是我的文件内容丢失的代码流,我认为可能是 IOUtils.toByteArray() 行有问题,请指导这里实际出了什么问题。

文件内容丢失:

InputStream stream = someClient.downloadApi(fileId);
byte[] bytes = IOUtils.toByteArray(stream); 
String mimeType = CommonUtils.fileTypeFromByteArray(bytes);
String fileExtension=FormatToExtensionMapping.getByFormat(mimeType).getExtension();
String filePath = configuration.getDownloadFolder() + "/" ;
String fileName = UUID.randomUUID() + fileExtension;    
File file = new File(filePath+fileName);    
file.createNewFile();    
FileUtils.copyInputStreamToFile(stream,file);    
int length = (int)file.length();
Run Code Online (Sandbox Code Playgroud)

现在这里的长度值是0基本上没有内容。让我告诉你,从 downloadApi() 接收到的 inputStream 肯定有内容。但是如果我尝试在代码中进行以下修改,那么我就会得到文件的长度。

文件内容不会丢失:

InputStream stream = someClient.downloadApi(fileId);
byte[] bytes = IOUtils.toByteArray(stream);
String mimeType = CommonUtils.fileTypeFromByteArray(bytes);
String fileExtension=FormatToExtensionMapping.getByFormat(mimeType).getExtension();
String filePath = configuration.getDownloadFolder() + "/" ;
String fileName = UUID.randomUUID() + fileExtension;
stream = new …
Run Code Online (Sandbox Code Playgroud)

java inputstream bytearrayinputstream ioutils

1
推荐指数
1
解决办法
1451
查看次数

标签 统计

bytearrayinputstream ×1

hadoop ×1

hive ×1

hiveql ×1

inputstream ×1

ioutils ×1

java ×1

sql ×1