как исправить Scala ошибка с «Не найден тип» - PullRequest
0 голосов
/ 12 марта 2020

Я новичок ie в Scala, просто пытаюсь выучить это в Spark. Сейчас я пишу приложение Scala для загрузки файла CSV из файла oop в dataframe, затем я хочу добавить новый столбец в этом dataframe. Существует функция для заполнения содержимого этого нового столбца, для тестирования функции просто введите верхний регистр столбца из файла CSV, файл CSV содержит только один столбец: emp_id и его строку. Функция определена в Object TestService. Моя IDE это Eclipse. Теперь у меня есть ошибка: не найдено: введите TestService

Очень признателен, если кто-нибудь может мне помочь.

\\This is the main:
import org.apache.spark.sql.SparkSession
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.sql.functions._


import com.poc.spark.service.TestService;


object SparkIntTest {
  def main(args:Array[String]){
    sys.props.+=(("hadoop.home.dir","C:\\OpenSource\\Hadoop"))

    val sparkConf = new SparkConf().setMaster("local").setAppName("employee").set("spark.testing.memory", "2147480000")
    val sparkContext = new SparkContext(sparkConf)
    val spark = SparkSession.builder().appName("employee").getOrCreate()

    val df = spark.read.option("header", "true").csv(".\\src\\main\\resources\\employee.csv")

    df.show();

    println(df.schema);

    val df_Applied = df.withColumn("award_rule",runAllRulesUDF(df("emp_id")))
    df_Applied.show();
    println(df_Applied.schema)

  }
  def runAllRulesUDF = udf(new TestService().runAllRulesForUDF(_:String))

}

Вот объект TestService:

package com.poc.spark.service

import org.apache.spark.sql.SparkSession
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.sql.functions._

object TestService {

  def runAllRulesForUDF(empid: String): String = {

    empid.toUpperCase();

  }
}

1 Ответ

0 голосов
/ 13 марта 2020

TestService - это object, что означает, что это статически созданный синглтон. Так что вместо

new TestService()

Вы можете просто сказать

TestService
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...