diff --git a/src/main/scala/com/github/mrpowers/spark/daria/sql/transformations.scala b/src/main/scala/com/github/mrpowers/spark/daria/sql/transformations.scala index a5cb2289..2c048153 100644 --- a/src/main/scala/com/github/mrpowers/spark/daria/sql/transformations.scala +++ b/src/main/scala/com/github/mrpowers/spark/daria/sql/transformations.scala @@ -2,11 +2,9 @@ package com.github.mrpowers.spark.daria.sql import com.github.mrpowers.spark.daria.sql.DataFrameExt._ import com.github.mrpowers.spark.daria.sql.functions.truncate -import org.apache.spark.rdd.RDD -import org.apache.spark.sql.types._ import org.apache.spark.sql.functions._ import org.apache.spark.sql.types.{StructField, StructType} -import org.apache.spark.sql.{Column, DataFrame, Row, SparkSession} +import org.apache.spark.sql.{Column, DataFrame} case class InvalidColumnSortOrderException(smth: String) extends Exception(smth) @@ -88,7 +86,7 @@ object transformations { df.columns.foldLeft(df) { (memoDF, colName) => memoDF.withColumnRenamed( colName, - toSnakeCase(colName) + com.github.mrpowers.spark.daria.utils.StringHelpers.toSnakeCase(colName) ) } } @@ -99,21 +97,9 @@ object transformations { */ def camelCaseToSnakeCaseColumns()(df: DataFrame): DataFrame = df.renameColumns( - _.replaceAll( - "([A-Z]+)", - "_$1" - ).toLowerCase.stripPrefix("_") + com.github.mrpowers.spark.daria.utils.StringHelpers.camelCaseToSnakeCase ) - private def toSnakeCase(str: String): String = { - str - .replaceAll( - "\\s+", - "_" - ) - .toLowerCase - } - /** * Title Cases all the columns of a DataFrame */ diff --git a/src/main/scala/com/github/mrpowers/spark/daria/utils/StringHelpers.scala b/src/main/scala/com/github/mrpowers/spark/daria/utils/StringHelpers.scala index 99055be3..beac4f44 100644 --- a/src/main/scala/com/github/mrpowers/spark/daria/utils/StringHelpers.scala +++ b/src/main/scala/com/github/mrpowers/spark/daria/utils/StringHelpers.scala @@ -26,4 +26,23 @@ object StringHelpers { }) } + def toSnakeCase(str: String): String = { + str + .replaceAll( + "\\s+", + "_" + ) + .toLowerCase + } + + def camelCaseToSnakeCase(str: String): String = { + str + .replaceAll( + "([A-Z]+)", + "_$1" + ) + .toLowerCase + .stripPrefix("_") + } + }