我想使用AWS Glue将一些csv数据转换为orc.
我创建的ETL作业生成了以下PySpark脚本:
import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
args = getResolvedOptions(sys.argv, ['JOB_NAME'])
sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
job = Job(glueContext)
job.init(args['JOB_NAME'], args)
datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "tests", table_name = "test_glue_csv", transformation_ctx = "datasource0")
applymapping1 = ApplyMapping.apply(frame = datasource0, mappings = [("id", "int", "id", "int"), ("val", "string", "val", "string")], transformation_ctx = "applymapping1")
resolvechoice2 = ResolveChoice.apply(frame = applymapping1, choice = "make_struct", …
Run Code Online (Sandbox Code Playgroud) amazon-web-services pyspark pyspark-sql amazon-athena aws-glue
我有以下一段代码:
array.forEach(function (item) {
// *** some processing on each item ***
var params = {Key: item.id, Body: item.body};
s3bucket.upload(params, function(err, data) {
if (err) {
console.log("Error uploading data. ", err);
} else {
console.log("Success uploading data");
}});
});
Run Code Online (Sandbox Code Playgroud)
因为 s3bucket.upload 是异步执行的 - 循环在上传所有项目之前完成。
如何强制 s3bucket.upload 同步?
这意味着在此项目上传(或失败)到 S3 之前不要跳转到下一次迭代。
谢谢
我在求职面试中被问到这个问题(微软).
实现的方法,例如:
.stream(),. filter(),. map(),flatMap(),min(),count(),reduce(),groupBy()
等
这是一个非常开放的问题,但我认为这是一个有趣的问题.
谢谢
我正在寻找一个HBase shell命令,它将计算指定列族中的记录数.我知道我可以跑:
echo "scan 'table_name'" | hbase shell | grep column_family_name | wc -l
Run Code Online (Sandbox Code Playgroud)
但是这将比标准计数命令运行得慢得多:
count 'table_name' , CACHE => 50000 (because the use of the CACHE=>50000)
Run Code Online (Sandbox Code Playgroud)
更糟糕的是 - 它没有返回实际的记录数,而是返回指定列族中的单元格总数(如果我没有弄错?).我需要这样的东西:
count 'table_name' , CACHE => 50000 , {COLUMNS => 'column_family_name'}
Run Code Online (Sandbox Code Playgroud)
迈克尔,提前谢谢