Преобразовать строку в тип столбца Spark - PullRequest
0 голосов
/ 23 февраля 2019

Код:

import org.apache.spark.sql.DataFrame
import org.apache.spark.sql.Column

def func(rawDF: DataFrame,primaryKey: Column, orderKey: Column): DataFrame = {

     //some process
    return newDf
} 

Я пытаюсь создать новый обработанный DF из существующего необработанного DF с помощью функции выше.

Код:

var processedDF  = func(rawDF,"col1","col2")

Ошибка:

<console>:73: error: type mismatch;
found   : String("col1")
required: org.apache.spark.sql.Column
   var processedDF  = func(rawDF,"col1","col2")
                                     ^

Любые предложения о том, как изменить тип параметра функции с String на org.apache.spark.sql.Column

1 Ответ

0 голосов
/ 23 февраля 2019

Либо

import org.apache.spark.sql.functions.col

func(rawDF, col("col1"), col("col2"))

или

func(rawDF, rawDF("col1"), rawDF("col2"))

, либо Column напрямую через $ (где spark - SparkSession объект)

import spark.implicits.StringToColumn

func(rawDF, $"col1", $"col2")

или Symbol

import spark.implicits.symbolToColumn

func(rawDF, 'col1, 'col2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...