【问题标题】:SparklyR/Spark SQL split string into multiple columns based on number of bites/character countSparklyR/Spark SQL 根据字节数/字符数将字符串拆分为多列
【发布时间】:2017-03-08 03:25:34
【问题描述】:

我有一个 spark 数据框 TABLE1,其中一列有 100000 行,每行包含一个长度相同的字符串

 AA105LONDEN    03162017045262017 16953563ABCDEF

我想根据下面分隔的行将每一行分成多列,包括作为单独列的空白。

 AA|105|LONDEN|    |0316|2017|04526|2017| |1695|3563|ABCDEF

目前我正在尝试将 DBI 包与如下代码一起使用:

 library(DBI)

 newdataframe <- dbGetQuery(sc,"INSERT INTO TABLE2
 (COLUMN1, COLUMN2, COLUMN3, COLUMN4)
  SELECT SUBSTR(TRIM(COLUMN_NAME),1,3),
           SUBSTR(TRIM(COLUMN_NAME),4,8),
           SUBSTR(TRIM(COLUMN_NAME),9,12),
           SUBSTR(TRIM(COLUMN_NAME),12,15)
  FROM TABLE1
  WHERE COLUMN_NAME IS NOT NULL")

我有一个 spark 数据框 TABLE1,其中一列有 100000 行,每行包含一个长度相同的字符串

 AA105LONDEN    03162017045262017 16953563ABCDEF

我想根据下面分隔的行将每一行分成多列,包括作为单独列的空白。

 AA|105|LONDEN|    |0316|2017|04526|2017| |1695|3563|ABCDEF

目前我正在尝试将 DBI 包与如下代码一起使用:

 library(DBI)

 newdataframe <- dbGetQuery(sc,"INSERT INTO TABLE2
 (COLUMN1, COLUMN2, COLUMN3, COLUMN4)
  SELECT SUBSTR(TRIM(COLUMN_NAME),1,3),
           SUBSTR(TRIM(COLUMN_NAME),4,8),
           SUBSTR(TRIM(COLUMN_NAME),9,12),
           SUBSTR(TRIM(COLUMN_NAME),12,15)
  FROM TABLE1
  WHERE COLUMN_NAME IS NOT NULL")

但这似乎不起作用。此外,即使它这样做了,它也只是返回一个 R 数据帧,我需要它在 spark 数据帧中工作。我正在寻找除 SQL 之外的替代建议,或者寻找适用于 spark 并返回解析的 Spark 数据帧的正确语法,然后我可以在该数据帧上执行 ML。任何想法。

提前致谢。

【问题讨论】:

    标签: r apache-spark sparklyr r-dbi


    【解决方案1】:

    使用它来创建数据框。它会给出正确的结果。

        sqlContext.sql("select substr(COLUMN_NAME,1,2),
    substr(COLUMN_NAME,3,3),
    substr(COLUMN_NAME,6,6),
    substr(COLUMN_NAME,12,4),
    substr(COLUMN_NAME,16,4),
    substr(COLUMN_NAME,20,4), 
    substr(COLUMN_NAME,24,5) ,
    substr(COLUMN_NAME,29,4) ,
    substr(COLUMN_NAME,33,1) ,
    substr(COLUMN_NAME,34,4) ,
    substr(COLUMN_NAME,38,4) ,
    substr(COLUMN_NAME,42,6) 
    TABLE1
    WHERE COLUMN_NAME IS NOT NULL")
    

    【讨论】:

      猜你喜欢
      • 2019-06-28
      • 2017-11-25
      • 2021-04-05
      • 2017-01-07
      • 1970-01-01
      • 2022-11-15
      • 2023-03-20
      相关资源
      最近更新 更多