小编Hem*_*nth的帖子

如何比较两个数据集?

我正在运行一个spark应用程序,它从几个hive表(IP地址)读取数据,并将数据集中的每个元素(IP地址)与来自其他数据集的所有其他元素(IP地址)进行比较.最终结果将是这样的:

+---------------+--------+---------------+---------------+---------+----------+--------+----------+
|     ip_address|dataset1|dataset2       |dataset3       |dataset4 |dataset5  |dataset6|      date|
+---------------+--------+---------------+---------------+---------+----------+--------+----------+
| xx.xx.xx.xx.xx|     1  |              1|              0|        0|         0|      0 |2017-11-06|
| xx.xx.xx.xx.xx|     0  |              0|              1|        0|         0|      1 |2017-11-06|
| xx.xx.xx.xx.xx|     1  |              0|              0|        0|         0|      1 |2017-11-06|
| xx.xx.xx.xx.xx|     0  |              0|              1|        0|         0|      1 |2017-11-06|
| xx.xx.xx.xx.xx|     1  |              1|              0|        1|         0|      0 |2017-11-06|
---------------------------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

为了进行比较,我将语句的dataframes结果转换hiveContext.sql("query")Fastutil对象.像这样:

val df= hiveContext.sql("query")
val dfBuffer = new it.unimi.dsi.fastutil.objects.ObjectArrayList[String](df.map(r => r(0).toString).collect())
Run Code Online (Sandbox Code Playgroud)

然后,我使用一个iterator …

scala apache-spark fastutil

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

AWS DMS - Oracle 到 PG RDS 完全加载操作错误 - 无法从 csv 文件加载数据

我正在尝试使用 DMS 将数据从 oracle 实例移动到 postgres RDS。我仅执行完整加载操作,并且已禁用目标上的所有外键。我还确保同一表的列之间的数据类型不会不匹配。我在目标表准备模式下尝试了“不执行任何操作”和“截断”,当我运行该任务时,多个表失败并显示以下错误消息:

[TARGET_LOAD ]E: Command failed to load data with exit error code 1, Command output: <truncated> [1020403] (csv_target.c:981)
[TARGET_LOAD ]E: Failed to wait for previous run [1020403] (csv_target.c:1578)
[TARGET_LOAD ]E: Failed to load data from csv file. [1020403] (odbc_endpoint_imp.c:5648)
[TARGET_LOAD ]E: Handling End of table 'public'.'SKEWED_VALUES' loading failed by subtask 6 thread 1 [1020403] (endpointshell.c:2416)
Run Code Online (Sandbox Code Playgroud)

DMS 没有给出正确的错误信息,我无法理解上述错误消息的含义。

当我使用“在目标上删除表”作为目标表准备模式时,它可以工作,但它以我不想要的不同方式创建列的数据类型。

任何帮助,将不胜感激。

oracle postgresql database-migration amazon-web-services aws-dms

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

Spark SQL - 仅匹配数字的正则表达式

我试图确保数据框中的特定列不包含任何非法值(非数字数据)。为此,我尝试使用正则表达式匹配rlike来收集数据中的非法值:

在此处输入图片说明

我需要使用字符串字符或空格或逗号或任何其他与数字不同的字符来收集值。我试过:

spark.sql("select * from tabl where UPC not rlike '[0-9]*'").show()
Run Code Online (Sandbox Code Playgroud)

但这不起作用。它产生 0 行。

任何帮助表示赞赏。谢谢你。

regex dataframe apache-spark apache-spark-sql pyspark

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

使用数据框中多个其他列的值将新列添加到Dataframe - spark/scala

我是新手来激发SQL和Dataframes.我有一个Dataframe我应该根据其他列的值添加新列.我有一个Nested IFexcel 的公式,我应该实现(用于向新列添加值),在转换为程序化术语时,它是这样的:

if(k =='yes')
{
  if(!(i==''))
  {
    if(diff(max_date, target_date) < 0)
    {
      if(j == '')
      {
        "pending" //the value of the column
      }
      else {
        "approved" //the value of the column
      }
    }
    else{
      "expired" //the value of the column
    }
  }
  else{
    "" //the value should be empty
  }
}
else{
  "" //the value should be empty
} 
Run Code Online (Sandbox Code Playgroud)

i,j,k are three other columns in the Dataframe.我知道我们可以使用withColumnwhen添加基于其他列的新列,但我不确定如何使用该方法实现上述逻辑.

在添加新列时实现上述逻辑的简单/有效方法是什么?任何帮助,将不胜感激.

谢谢.

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

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

更改asspark数据框中的列值的日期格式

我正在将Excel工作表读入DataframeSpark 2.0中,然后尝试将具有日期值的某些列MM/DD/YY转换为YYYY-MM-DDformat格式。值是字符串格式。下面是示例:

+---------------+--------------+
|modified       |      created |
+---------------+--------------+
|           null| 12/4/17 13:45|
|        2/20/18|  2/2/18 20:50|
|        3/20/18|  2/2/18 21:10|
|        2/20/18|  2/2/18 21:23|
|        2/28/18|12/12/17 15:42| 
|        1/25/18| 11/9/17 13:10|
|        1/29/18| 12/6/17 10:07| 
+---------------+--------------+
Run Code Online (Sandbox Code Playgroud)

我希望将其转换为:

+---------------+-----------------+
|modified       |      created    |
+---------------+-----------------+
|           null| 2017-12-04 13:45|
|     2018-02-20| 2018-02-02 20:50|
|     2018-03-20| 2018-02-02 21:10|
|     2018-02-20| 2018-02-02 21:23|
|     2018-02-28| 2017-12-12 15:42| 
|     2018-01-25| 2017-11-09 13:10|
|     2018-01-29| 2017-12-06 10:07| 
+---------------+-----------------+ …
Run Code Online (Sandbox Code Playgroud)

scala dataframe apache-spark apache-spark-sql

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