小编dat*_*ack的帖子

Apache Spark 读取 UTF-16 CSV 文件

我正在尝试读取以 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

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

从存储过程内的 S3 进行 Redshift 复制

我想使用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 语句

我怎样才能实现这个目标?

stored-procedures amazon-web-services amazon-redshift

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

AWS MWAA 定价

我不清楚 aws mwaa 文档是否说明了以下内容“使用 Amazon Managed Workflows for Apache Airflow (MWAA),您只需为您使用的内容付费。没有最低费用或预付款承诺。您为 Airflow 环境的时间付费运行..”,为什么环境 24/7 有成本?如果我每天只想运行一次 ETL 作业,我是否需要为环境 24 小时付费?

amazon-web-services airflow mwaa

5
推荐指数
2
解决办法
5100
查看次数

如何均匀分布数据集以避免偏斜连接(以及长时间运行的任务)?

我在databricks笔记本上使用Spark数据集API编写应用程序.

我有2张桌子.一个是15亿行,第二个是250万行.两个表都包含电信数据,并且使用国家代码和数字的前5位数来完成连接.输出有550亿行.问题是我有数据偏差(长时间运行的任务).无论我如何重新分配数据集,由于散列键的分布不均匀,我得到了长时间运行的任务.

我尝试使用广播连接,尝试在内存中保持大表分区等.....

我有什么选择?

join apache-spark apache-spark-sql

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

AWS Cloudwatch 在动态标签上触发 Codepipeline

我想用动态标签标记一个提交,例如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

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

Apache Spark从时间戳列中减去天数

我正在使用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。

timestamp dataframe apache-spark apache-spark-sql

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

AWS Glue作业访问参数

我有一个用Scala编写的胶水作业(Spark作业),我想将参数传递给它。我使用lambda函数来触发作业。我应该如何访问传递给作业的参数?

这是正确的方法吗?

def main(sysArgs: Array[String]) {

    /** This is input parameter */
   val par = sysArgs(0)

}
Run Code Online (Sandbox Code Playgroud)

还是其他?

scala apache-spark aws-lambda aws-glue

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

Apache Spark-将CSV数据加载到数据集的通用方法

我想用三个输入参数编写通用方法:

  1. filePath-字符串
  2. 模式-?
  3. 案例类

因此,我的想法是编写这样的方法:

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应该是哪种类型?

scala apache-spark apache-spark-sql spark-dataframe

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