применять функции или операции к кадру Java, который удаляет последний специальный символ - PullRequest
0 голосов
/ 09 июня 2018

У меня есть данные для первого столбца 'code' для кадра данных, как показано ниже

'101-23', '23-00-11', 'NOV-11-23','34 -000-1111-1 '

и теперь я хочу использовать значения, указанные ниже для столбца' code 'после подстроки.

101,23-00, NOV-11,34-000-1111

Вышеуказанное легко достигается с помощью кода Java, как показано ниже:

String str ="23-00-11";    
int index=str.lastindex("-");
String ss=str.substring(0,index);

, который дает

'23 -00 '

Как сделать с dataframe и записать udf для orapply на dataframe с помощью spark 1.6.2 java 1.8?
Я пытался с df.withcolumn("code",substring("code",0,1)), но не нашел путинайти последний индекс.Пожалуйста, помогите.

1 Ответ

0 голосов
/ 09 июня 2018
   from pyspark.sql.functions import *
      newDf = df.withColumn('_c0', regexp_replace('_c0', '@', ''))\
      .withColumn('_c1', regexp_replace('_c1', "'", ''))\
      .withColumn('_c2', regexp_replace('_c2', '!', ''))

    newDf.show()

Обновлено

import org.apache.spark.sql.functions._

val df11 = Seq("'101-23','23-00-11','NOV-11-23','34-000-1111-1'").toDS()

df11.show()

//df11.select(col("a"), substring_index(col("value"), ",", 1).as("b"))
val df111=df11.withColumn("value", substring(df11("value"), 0, 10))
df111.show()

Результат:

+--------------------+
|               value|
+--------------------+
|'101-23','23-00-1...|
+--------------------+

+----------+
|     value|
+----------+
|'101-23','|
+----------+

import org.apache.spark.sql.functions._
df11: org.apache.spark.sql.Dataset[String] = [value: string]
df111: org.apache.spark.sql.DataFrame = [value: string]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...