Node.js AWS雅典娜可以';t使用快速压缩读取拼花地板文件
我在nodejs中创建了一个AWS lambda,所以我使用一个库将json转换为拼花文件 此库没有自己的压缩方法,因此在创建拼花地板文件后,我尝试使用google snappy库对其进行压缩:Node.js AWS雅典娜可以';t使用快速压缩读取拼花地板文件,node.js,lambda,compression,amazon-athena,snappy,Node.js,Lambda,Compression,Amazon Athena,Snappy,我在nodejs中创建了一个AWS lambda,所以我使用一个库将json转换为拼花文件 此库没有自己的压缩方法,因此在创建拼花地板文件后,我尝试使用google snappy库对其进行压缩: next => { snappy.compress(fs.readFileSync(parquetFile.name), (err, compressed) => { next(err, compressed) }) }, (compr
next => {
snappy.compress(fs.readFileSync(parquetFile.name), (err, compressed) => {
next(err, compressed)
})
},
(compressed, next) => {
const parquetS3File = new S3File(config.parquet.bucket, Tools.createPutKey(config.parquet.prefix, s3ObjectKey))
parquetS3File.body = compressed
parquetS3File.upload(err => {
parquetFile.removeCallback()
next(err)
})
}
但是,当我试图在雅典娜中进行一些查询时,我遇到了下一个错误
HIVE_CANNOT_OPEN_SPLIT: Error opening Hive split s3://bucket-example/data/parquet_node/year=2018/month=04/day=18/hour=18/minute=47/file.snappy.parquet (offset=0, length=11716266): can not read class parquet.format.FileMetaData: don't know what type: 15
This query ran against the "test" database, unless qualified by the query. Please post the error message on our forum or contact customer support with Query Id: 3b3a2df1-b202.
另一方面,当我不压缩数据时,雅典娜可以读取文件
诸如此类:
next => {
const parquetS3File = new S3File(config.parquet.bucket, Tools.createPutKey(config.parquet.prefix, s3ObjectKey))
parquetS3File.body = fs.readFileSync(parquetFile.name)
parquetS3File.upload(err => {
parquetFile.removeCallback()
next(err)
})
}
所以,问题是:在创建拼花地板文件(使用snappy)之后,有没有任何方法可以压缩它
谢谢 这是雅典娜已知的问题(普雷斯托)