Skip to content

Commit 855fba8

Browse files
authored
Merge pull request #379 from s22s/fix/293.1
Reworking of logging usage to fix #293
2 parents 5c8467e + 6362d9e commit 855fba8

File tree

26 files changed

+131
-88
lines changed

26 files changed

+131
-88
lines changed

core/src/main/scala/org/locationtech/rasterframes/expressions/BinaryLocalRasterOp.scala

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,22 @@
2121

2222
package org.locationtech.rasterframes.expressions
2323

24-
import org.locationtech.rasterframes.encoders.CatalystSerializer._
25-
import org.locationtech.rasterframes.expressions.DynamicExtractors._
26-
import com.typesafe.scalalogging.LazyLogging
24+
import com.typesafe.scalalogging.Logger
2725
import geotrellis.raster.Tile
2826
import org.apache.spark.sql.catalyst.analysis.TypeCheckResult
2927
import org.apache.spark.sql.catalyst.analysis.TypeCheckResult.{TypeCheckFailure, TypeCheckSuccess}
3028
import org.apache.spark.sql.catalyst.expressions.BinaryExpression
3129
import org.apache.spark.sql.rf.TileUDT
3230
import org.apache.spark.sql.types.DataType
31+
import org.locationtech.rasterframes.encoders.CatalystSerializer._
32+
import org.locationtech.rasterframes.expressions.DynamicExtractors._
33+
import org.slf4j.LoggerFactory
3334

3435
/** Operation combining two tiles or a tile and a scalar into a new tile. */
35-
trait BinaryLocalRasterOp extends BinaryExpression with LazyLogging {
36+
trait BinaryLocalRasterOp extends BinaryExpression {
37+
38+
@transient protected lazy val logger = Logger(LoggerFactory.getLogger(getClass.getName))
39+
3640

3741
override def dataType: DataType = left.dataType
3842

core/src/main/scala/org/locationtech/rasterframes/expressions/BinaryRasterOp.scala

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,20 @@
2121

2222
package org.locationtech.rasterframes.expressions
2323

24-
import org.locationtech.rasterframes.expressions.DynamicExtractors.tileExtractor
25-
import org.locationtech.rasterframes.encoders.CatalystSerializer._
26-
import com.typesafe.scalalogging.LazyLogging
24+
import com.typesafe.scalalogging.Logger
2725
import geotrellis.raster.Tile
2826
import org.apache.spark.sql.catalyst.analysis.TypeCheckResult
2927
import org.apache.spark.sql.catalyst.analysis.TypeCheckResult.{TypeCheckFailure, TypeCheckSuccess}
3028
import org.apache.spark.sql.catalyst.expressions.BinaryExpression
3129
import org.apache.spark.sql.rf.TileUDT
3230
import org.apache.spark.sql.types.DataType
31+
import org.locationtech.rasterframes.encoders.CatalystSerializer._
32+
import org.locationtech.rasterframes.expressions.DynamicExtractors.tileExtractor
33+
import org.slf4j.LoggerFactory
3334

3435
/** Operation combining two tiles into a new tile. */
35-
trait BinaryRasterOp extends BinaryExpression with LazyLogging {
36+
trait BinaryRasterOp extends BinaryExpression {
37+
@transient protected lazy val logger = Logger(LoggerFactory.getLogger(getClass.getName))
3638

3739
override def dataType: DataType = left.dataType
3840

core/src/main/scala/org/locationtech/rasterframes/expressions/UnaryLocalRasterOp.scala

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,20 @@
2121

2222
package org.locationtech.rasterframes.expressions
2323

24-
import org.locationtech.rasterframes.encoders.CatalystSerializer._
25-
import org.locationtech.rasterframes.expressions.DynamicExtractors._
26-
import com.typesafe.scalalogging.LazyLogging
24+
import com.typesafe.scalalogging.Logger
2725
import geotrellis.raster.Tile
2826
import org.apache.spark.sql.catalyst.analysis.TypeCheckResult
2927
import org.apache.spark.sql.catalyst.analysis.TypeCheckResult.{TypeCheckFailure, TypeCheckSuccess}
3028
import org.apache.spark.sql.catalyst.expressions.UnaryExpression
3129
import org.apache.spark.sql.rf.TileUDT
3230
import org.apache.spark.sql.types.DataType
31+
import org.locationtech.rasterframes.encoders.CatalystSerializer._
32+
import org.locationtech.rasterframes.expressions.DynamicExtractors._
33+
import org.slf4j.LoggerFactory
3334

3435
/** Operation on a tile returning a tile. */
35-
trait UnaryLocalRasterOp extends UnaryExpression with LazyLogging {
36+
trait UnaryLocalRasterOp extends UnaryExpression {
37+
@transient protected lazy val logger = Logger(LoggerFactory.getLogger(getClass.getName))
3638

3739
override def dataType: DataType = child.dataType
3840

core/src/main/scala/org/locationtech/rasterframes/expressions/generators/RasterSourceToTiles.scala

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,20 @@
2121

2222
package org.locationtech.rasterframes.expressions.generators
2323

24-
import com.typesafe.scalalogging.LazyLogging
24+
import com.typesafe.scalalogging.Logger
2525
import org.apache.spark.sql.catalyst.InternalRow
2626
import org.apache.spark.sql.catalyst.expressions._
2727
import org.apache.spark.sql.catalyst.expressions.codegen.CodegenFallback
2828
import org.apache.spark.sql.types.{DataType, StructField, StructType}
2929
import org.apache.spark.sql.{Column, TypedColumn}
3030
import org.locationtech.rasterframes
31+
import org.locationtech.rasterframes.RasterSourceType
3132
import org.locationtech.rasterframes.encoders.CatalystSerializer._
3233
import org.locationtech.rasterframes.expressions.generators.RasterSourceToRasterRefs.bandNames
3334
import org.locationtech.rasterframes.model.TileDimensions
3435
import org.locationtech.rasterframes.tiles.ProjectedRasterTile
3536
import org.locationtech.rasterframes.util._
36-
import org.locationtech.rasterframes.RasterSourceType
37+
import org.slf4j.LoggerFactory
3738

3839
import scala.util.Try
3940
import scala.util.control.NonFatal
@@ -45,7 +46,9 @@ import scala.util.control.NonFatal
4546
* @since 9/6/18
4647
*/
4748
case class RasterSourceToTiles(children: Seq[Expression], bandIndexes: Seq[Int], subtileDims: Option[TileDimensions] = None) extends Expression
48-
with Generator with CodegenFallback with ExpectsInputTypes with LazyLogging {
49+
with Generator with CodegenFallback with ExpectsInputTypes {
50+
51+
@transient protected lazy val logger = Logger(LoggerFactory.getLogger(getClass.getName))
4952

5053
override def inputTypes: Seq[DataType] = Seq.fill(children.size)(RasterSourceType)
5154
override def nodeName: String = "rf_raster_source_to_tiles"

core/src/main/scala/org/locationtech/rasterframes/expressions/transformers/Mask.scala

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,7 @@
2121

2222
package org.locationtech.rasterframes.expressions.transformers
2323

24-
import org.locationtech.rasterframes.encoders.CatalystSerializer._
25-
import org.locationtech.rasterframes.expressions.DynamicExtractors._
26-
import org.locationtech.rasterframes.expressions.row
27-
import com.typesafe.scalalogging.LazyLogging
24+
import com.typesafe.scalalogging.Logger
2825
import geotrellis.raster
2926
import geotrellis.raster.Tile
3027
import geotrellis.raster.mapalgebra.local.{Defined, InverseMask => gtInverseMask, Mask => gtMask}
@@ -35,9 +32,16 @@ import org.apache.spark.sql.catalyst.expressions.{Expression, ExpressionDescript
3532
import org.apache.spark.sql.rf.TileUDT
3633
import org.apache.spark.sql.types.DataType
3734
import org.apache.spark.sql.{Column, TypedColumn}
35+
import org.locationtech.rasterframes.encoders.CatalystSerializer._
36+
import org.locationtech.rasterframes.expressions.DynamicExtractors._
37+
import org.locationtech.rasterframes.expressions.row
38+
import org.slf4j.LoggerFactory
3839

3940
abstract class Mask(val left: Expression, val middle: Expression, val right: Expression, inverse: Boolean)
40-
extends TernaryExpression with CodegenFallback with Serializable with LazyLogging {
41+
extends TernaryExpression with CodegenFallback with Serializable {
42+
43+
@transient protected lazy val logger = Logger(LoggerFactory.getLogger(getClass.getName))
44+
4145

4246
override def children: Seq[Expression] = Seq(left, middle, right)
4347

core/src/main/scala/org/locationtech/rasterframes/expressions/transformers/RasterRefToTile.scala

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,24 +21,27 @@
2121

2222
package org.locationtech.rasterframes.expressions.transformers
2323

24-
import org.locationtech.rasterframes.encoders.CatalystSerializer._
25-
import org.locationtech.rasterframes.expressions.row
26-
import com.typesafe.scalalogging.LazyLogging
24+
import com.typesafe.scalalogging.Logger
2725
import org.apache.spark.sql.catalyst.expressions.codegen.CodegenFallback
2826
import org.apache.spark.sql.catalyst.expressions.{ExpectsInputTypes, Expression, UnaryExpression}
2927
import org.apache.spark.sql.rf._
3028
import org.apache.spark.sql.types.DataType
3129
import org.apache.spark.sql.{Column, TypedColumn}
30+
import org.locationtech.rasterframes.encoders.CatalystSerializer._
31+
import org.locationtech.rasterframes.expressions.row
3232
import org.locationtech.rasterframes.ref.RasterRef
3333
import org.locationtech.rasterframes.tiles.ProjectedRasterTile
34+
import org.slf4j.LoggerFactory
3435

3536
/**
3637
* Realizes a RasterRef into a Tile.
3738
*
3839
* @since 11/2/18
3940
*/
4041
case class RasterRefToTile(child: Expression) extends UnaryExpression
41-
with CodegenFallback with ExpectsInputTypes with LazyLogging {
42+
with CodegenFallback with ExpectsInputTypes {
43+
44+
@transient protected lazy val logger = Logger(LoggerFactory.getLogger(getClass.getName))
4245

4346
override def nodeName: String = "raster_ref_to_tile"
4447

core/src/main/scala/org/locationtech/rasterframes/expressions/transformers/SetNoDataValue.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
package org.locationtech.rasterframes.expressions.transformers
2323

24-
import com.typesafe.scalalogging.LazyLogging
24+
import com.typesafe.scalalogging.Logger
2525
import org.apache.spark.sql.Column
2626
import org.apache.spark.sql.catalyst.analysis.TypeCheckResult
2727
import org.apache.spark.sql.catalyst.analysis.TypeCheckResult.{TypeCheckFailure, TypeCheckSuccess}
@@ -33,6 +33,7 @@ import org.apache.spark.sql.types._
3333
import org.locationtech.rasterframes.encoders.CatalystSerializer._
3434
import org.locationtech.rasterframes.expressions.DynamicExtractors._
3535
import org.locationtech.rasterframes.expressions.row
36+
import org.slf4j.LoggerFactory
3637

3738
@ExpressionDescription(
3839
usage = "_FUNC_(tile, value) - Set the NoData value for the given tile.",
@@ -45,7 +46,8 @@ import org.locationtech.rasterframes.expressions.row
4546
> SELECT _FUNC_(tile, 1.5);
4647
..."""
4748
)
48-
case class SetNoDataValue(left: Expression, right: Expression) extends BinaryExpression with CodegenFallback with LazyLogging {
49+
case class SetNoDataValue(left: Expression, right: Expression) extends BinaryExpression with CodegenFallback {
50+
@transient protected lazy val logger = Logger(LoggerFactory.getLogger(getClass.getName))
4951

5052
override val nodeName: String = "rf_with_no_data"
5153
override def dataType: DataType = left.dataType

core/src/main/scala/org/locationtech/rasterframes/expressions/transformers/URIToRasterSource.scala

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,15 @@ package org.locationtech.rasterframes.expressions.transformers
2323

2424
import java.net.URI
2525

26-
import org.locationtech.rasterframes.RasterSourceType
27-
import com.typesafe.scalalogging.LazyLogging
26+
import com.typesafe.scalalogging.Logger
2827
import org.apache.spark.sql.catalyst.expressions.codegen.CodegenFallback
2928
import org.apache.spark.sql.catalyst.expressions.{ExpectsInputTypes, Expression, UnaryExpression}
3029
import org.apache.spark.sql.types.{DataType, StringType}
3130
import org.apache.spark.sql.{Column, TypedColumn}
3231
import org.apache.spark.unsafe.types.UTF8String
32+
import org.locationtech.rasterframes.RasterSourceType
3333
import org.locationtech.rasterframes.ref.RasterSource
34+
import org.slf4j.LoggerFactory
3435

3536
/**
3637
* Catalyst generator to convert a geotiff download URL into a series of rows
@@ -39,7 +40,9 @@ import org.locationtech.rasterframes.ref.RasterSource
3940
* @since 5/4/18
4041
*/
4142
case class URIToRasterSource(override val child: Expression)
42-
extends UnaryExpression with ExpectsInputTypes with CodegenFallback with LazyLogging {
43+
extends UnaryExpression with ExpectsInputTypes with CodegenFallback {
44+
@transient protected lazy val logger = Logger(LoggerFactory.getLogger(getClass.getName))
45+
4346

4447
override def nodeName: String = "rf_uri_to_raster_source"
4548

core/src/main/scala/org/locationtech/rasterframes/extensions/RasterFrameLayerMethods.scala

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@ package org.locationtech.rasterframes.extensions
2323

2424
import java.time.ZonedDateTime
2525

26-
import org.locationtech.rasterframes.util._
27-
import org.locationtech.rasterframes.RasterFrameLayer
26+
import com.typesafe.scalalogging.Logger
2827
import geotrellis.proj4.CRS
2928
import geotrellis.raster.resample.{NearestNeighbor, ResampleMethod}
3029
import geotrellis.raster.{MultibandTile, ProjectedRaster, Tile, TileLayout}
@@ -37,12 +36,13 @@ import org.apache.spark.annotation.Experimental
3736
import org.apache.spark.sql._
3837
import org.apache.spark.sql.functions._
3938
import org.apache.spark.sql.types.{Metadata, TimestampType}
40-
import spray.json._
41-
import org.locationtech.rasterframes.encoders.StandardEncoders._
39+
import org.locationtech.rasterframes.{MetadataKeys, RasterFrameLayer}
4240
import org.locationtech.rasterframes.encoders.StandardEncoders.PrimitiveEncoders._
43-
import com.typesafe.scalalogging.LazyLogging
44-
import org.locationtech.rasterframes.MetadataKeys
41+
import org.locationtech.rasterframes.encoders.StandardEncoders._
4542
import org.locationtech.rasterframes.tiles.ShowableTile
43+
import org.locationtech.rasterframes.util._
44+
import org.slf4j.LoggerFactory
45+
import spray.json._
4646

4747
import scala.reflect.runtime.universe._
4848

@@ -52,9 +52,11 @@ import scala.reflect.runtime.universe._
5252
* @since 7/18/17
5353
*/
5454
trait RasterFrameLayerMethods extends MethodExtensions[RasterFrameLayer]
55-
with RFSpatialColumnMethods with MetadataKeys with LazyLogging {
55+
with RFSpatialColumnMethods with MetadataKeys {
5656
import Implicits.{WithDataFrameMethods, WithRasterFrameLayerMethods}
5757

58+
@transient protected lazy val logger = Logger(LoggerFactory.getLogger(getClass.getName))
59+
5860
/**
5961
* A convenience over `DataFrame.withColumnRenamed` whereby the `RasterFrameLayer` type is maintained.
6062
*/

core/src/main/scala/org/locationtech/rasterframes/rasterframes.scala

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,8 @@
2121

2222
package org.locationtech
2323
import com.typesafe.config.ConfigFactory
24-
import com.typesafe.scalalogging.LazyLogging
25-
import geotrellis.raster.isData
26-
import geotrellis.raster.{Tile, TileFeature}
24+
import com.typesafe.scalalogging.Logger
25+
import geotrellis.raster.{Tile, TileFeature, isData}
2726
import geotrellis.spark.{ContextRDD, Metadata, SpaceTimeKey, SpatialKey, TileLayerMetadata}
2827
import org.apache.spark.rdd.RDD
2928
import org.apache.spark.sql.rf.{RasterSourceUDT, TileUDT}
@@ -33,6 +32,7 @@ import org.locationtech.rasterframes.encoders.StandardEncoders
3332
import org.locationtech.rasterframes.extensions.Implicits
3433
import org.locationtech.rasterframes.model.TileDimensions
3534
import org.locationtech.rasterframes.util.ZeroSevenCompatibilityKit
35+
import org.slf4j.LoggerFactory
3636
import shapeless.tag.@@
3737

3838
import scala.reflect.runtime.universe._
@@ -43,8 +43,10 @@ package object rasterframes extends StandardColumns
4343
with Implicits
4444
with rasterframes.jts.Implicits
4545
with StandardEncoders
46-
with DataFrameFunctions.Library
47-
with LazyLogging {
46+
with DataFrameFunctions.Library {
47+
48+
// Don't make this a `lazy val`... breaks Spark assemblies for some reason.
49+
protected def logger: Logger = Logger(LoggerFactory.getLogger(getClass.getName))
4850

4951
@transient
5052
private[rasterframes]

0 commit comments

Comments
 (0)