我正在尝试读取以 UTF-16 编码的 CSV 文件。
val test = spark.read
.format("com.databricks.spark.csv")
.option("header", "true")
.option("inferSchema", "true")
.option("delimiter",";")
.option("dateFormat", "yyyy-MM-dd HH:mm:ss.SSS")
.option("encoding", "UTF-16")
.option("charset", "ISO-8859-1")
.load("...")
Run Code Online (Sandbox Code Playgroud)
结果我得到了额外的行:
Spark 是否可能只能使用 UTF-8 编码?或者还有其他方法可以将 UTF-16 CSV 读入数据帧?
scala apache-spark apache-spark-sql spark-dataframe databricks
我想使用Lambda准备一个清单文件,然后执行提供输入参数manifest_location的存储过程。
存储过程签名:
CREATE OR REPLACE PROCEDURE stage.sp_stage_user_activity_page_events(manifest_location varchar(256))
Run Code Online (Sandbox Code Playgroud)
我想按如下方式使用此参数:
COPY stage.user_activity_event
FROM manifest_location
IAM_ROLE 'arn:aws:iam::XXX:role/redshift-s3-read-only-role'
IGNOREHEADER 1
REMOVEQUOTES
DELIMITER ','
LZOP
MANIFEST;
Run Code Online (Sandbox Code Playgroud)
但 Redshift 给了我错误:
“$1”处或附近存在语法错误 其中:第 21 行附近 PL/PgSQL 函数“sp_stage_user_activity_page_events”中的 SQL 语句
我怎样才能实现这个目标?
我不清楚 aws mwaa 文档是否说明了以下内容“使用 Amazon Managed Workflows for Apache Airflow (MWAA),您只需为您使用的内容付费。没有最低费用或预付款承诺。您为 Airflow 环境的时间付费运行..”,为什么环境 24/7 有成本?如果我每天只想运行一次 ETL 作业,我是否需要为环境 24 小时付费?
我在databricks笔记本上使用Spark数据集API编写应用程序.
我有2张桌子.一个是15亿行,第二个是250万行.两个表都包含电信数据,并且使用国家代码和数字的前5位数来完成连接.输出有550亿行.问题是我有数据偏差(长时间运行的任务).无论我如何重新分配数据集,由于散列键的分布不均匀,我得到了长时间运行的任务.
我尝试使用广播连接,尝试在内存中保持大表分区等.....
我有什么选择?
我想用动态标签标记一个提交,例如git tag deploy-$(date +"%Y-%m-%d_%H-%M-%S"),然后从 cloudwatch 触发代码管道。问题是如果我使用以下 cloudwatch 事件模式:
{
"source": [
"aws.codecommit"
],
"detail-type": [
"CodeCommit Repository State Change"
],
"resources": [
"arn:aws:codecommit:region:XXX:someName"
],
"detail": {
"event": [
"referenceCreated",
"referenceUpdated"
],
"repositoryName": [
"someName"
],
"referenceType": [
"tag"
],
"referenceName": [
"deploy"
]
}
}
Run Code Online (Sandbox Code Playgroud)
它只会在特定标签上触发 - “部署”。有没有办法说出以(包含)deploy 关键字开头的任何标签?
amazon-web-services amazon-cloudwatch aws-codecommit aws-codepipeline
我正在使用Spark数据集,无法从时间戳列中减去天数。
我想从时间戳列中减去天数,并获得具有完整日期时间格式的新列。例:
2017-09-22 13:17:39.900 - 10 ----> 2017-09-12 13:17:39.900
Run Code Online (Sandbox Code Playgroud)
使用date_sub函数,我将获得2017-09-12而没有13:17:39.900。
我有一个用Scala编写的胶水作业(Spark作业),我想将参数传递给它。我使用lambda函数来触发作业。我应该如何访问传递给作业的参数?
这是正确的方法吗?
def main(sysArgs: Array[String]) {
/** This is input parameter */
val par = sysArgs(0)
}
Run Code Online (Sandbox Code Playgroud)
还是其他?
我想用三个输入参数编写通用方法:
因此,我的想法是编写这样的方法:
def load_sms_ds(filePath: String, schemaInfo: ?, cc: ?) = {
val ds = spark.read
.format("csv")
.option("header", "true")
.schema(?)
.option("delimiter",",")
.option("dateFormat", "yyyy-MM-dd HH:mm:ss.SSS")
.load(schemaInfo)
.as[?]
ds
}
Run Code Online (Sandbox Code Playgroud)
并根据输入参数返回数据集。我不确定参数schemaInfo和cc应该是哪种类型?
apache-spark ×5
scala ×3
airflow ×1
aws-glue ×1
aws-lambda ×1
databricks ×1
dataframe ×1
join ×1
mwaa ×1
timestamp ×1