Apache spark 找不到参数sparkSession的隐式值

Apache spark 找不到参数sparkSession的隐式值,apache-spark,implicit,Apache Spark,Implicit,我有一个笔记本,下面的代码会引发以下错误: 找不到参数sparkSession的隐式值 错误: Name: Compile Error Message: <console>:82: error: could not find implicit value for parameter sparkSession: org.apache.spark.sql.SparkSession val balancedNonFraudDF = createBalancedDatafram

我有一个笔记本,下面的代码会引发以下错误:

找不到参数sparkSession的隐式值

错误:

Name: Compile Error
Message: <console>:82: error: could not find implicit value for parameter sparkSession: org.apache.spark.sql.SparkSession
       val balancedNonFraudDF = createBalancedDataframe(nonFraudDF, fraudCount.toInt)
                                                       ^

StackTrace: 
更新2:

featureDF.printSchema
root
 |-- cc_num: long (nullable = true)
 |-- category: string (nullable = true)
 |-- merchant: string (nullable = true)
 |-- distance: double (nullable = true)
 |-- amt: integer (nullable = true)
 |-- age: integer (nullable = true)
 |-- is_fraud: integer (nullable = true)
 |-- category_indexed: double (nullable = false)
 |-- category_encoded: vector (nullable = true)
 |-- merchant_indexed: double (nullable = false)
 |-- merchant_encoded: vector (nullable = true)
 |-- features: vector (nullable = true)

val fraudDF = featureDF
      .filter($"is_fraud" === 1)
      .withColumnRenamed("is_fraud", "label")
      .select("features", "label")

fraudDF.printSchema
root
 |-- cc_num: long (nullable = true)
 |-- trans_num: string (nullable = true)
 |-- trans_time: string (nullable = true)
 |-- category: string (nullable = true)
 |-- merchant: string (nullable = true)
 |-- amt: integer (nullable = true)
 |-- merch_lat: double (nullable = true)
 |-- merch_long: double (nullable = true)
 |-- distance: double (nullable = true)
 |-- age: integer (nullable = true)
 |-- is_fraud: integer (nullable = true)
为什么功能消失了


假设您有SparkSession,并且名为spark

您可以这样显式地传递它

val balancedNonFraudDF = createBalancedDataframe(nonFraudDF, fraudCount.toInt)(spark)
或者在调用环境中创建一个隐式引用(spark2或任何名称)。例如:

implicit val spark2 = spark
//some calls
// others
val balancedNonFraudDF = createBalancedDataframe(nonFraudDF, fraudCount.toInt)

可用字段:抄送数量、交易数量、交易时间、类别、商户、金额、交易时间、交易距离、交易时间、距离、年龄、是否欺诈。比如说,cc_num是features,trans_num是label,那么你可以通过:`toDF(“cc_num”,“trans_num”)。选择($“cc_num”作为“features”,$“trans_num”作为“label”)跟踪这个
特性。过滤器($“is_fraud”==1)
-在这个数据框中,查看所有
特性
值是否为空。如果是这样的话,这就是为什么它会掉下来。(我想)谢谢你,不,不是空的。等一下
.select(“features”、“label”)
您只选择了两列,如何打印
fraudDF.printSchema根--cc_num:long(nullable=true)|--trans_num:string(nullable=true)|--trans_时间:string(nullable=true)|--category:string(nullable=true)|--merchant:string(nullable=true)|--amt:integer(nullable=true)|--merch_lat:double(nullable=true)|--merch_long:double(nullable=true)|--distance:double(nullable=true)|--age:integer(nullable=true)|--is_欺诈:integer(nullable=true)
val balancedNonFraudDF = createBalancedDataframe(nonFraudDF, fraudCount.toInt)(spark)
implicit val spark2 = spark
//some calls
// others
val balancedNonFraudDF = createBalancedDataframe(nonFraudDF, fraudCount.toInt)