All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.samelamin.spark.bigquery.DataFrameWriterFunctions.scala Maven / Gradle / Ivy

There is a newer version: 0.2.7
Show newest version
/*
 * Copyright (c) 2015 Samelamin.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.samelamin.spark.bigquery

import org.apache.spark.sql.{DataFrameWriter, Row}

class DataFrameWriterFunctions(@transient val dfw: DataFrameWriter[Row]) extends Serializable {

  /**
    * The classpath to the default source (which in turn results in a BigQuery Source )
    */
  private val source = "com.samelamin.spark.bigquery.DefaultSource"

  /**
    * Stores the current DataFrame in the only open bucket.
    */
  def bigquery(options: Map[String, String] = null): Unit = writeFrame(options)

  /**
    * Helper method to write the current DataFrame to bigquery.
    */
  private def writeFrame(options: Map[String, String] = null): Unit = {
    val builder = dfw
      .format(source)

    if (options != null) {
      builder.options(options)
    }

    builder.save()
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy