Публікації

Показано дописи з міткою "Scala"

Быстрая компиляция Scala кода с помощью Maven

Если Вы когда либо работали с Scala(например для работы со Spark Streaming ), то вы очень быстро поняли, что компиляция кода занимает очень много времени. Есть много причин , по которым scalaс так долго компилирует код.   Но всётаки есть варианты, как сделать компиляцию кода быстрее. Многие используют инкрементный режим в sbt(Simple Build Tools) как решение этого вопроса. В этом режиме sbt остаётся запущеным и ему не нужно тратить время на запуск JVM каждый раз, когда нужно скомпилировать код.   Кроме sbt остаётся очень много пользователей Maven -a как инструмента для компиляции кода. Поэтому появился zinc, который является автономной версией sbt c инкрементой компиляцией.  Забегая на перёд скажу, что zinc вместе с mvnsh даёт намного лучший результат чем стандартный maven.  Давайте поставим и проверим это на своём коде: Устанавливаем Zinc с сайта:  https://github.com/typesafehub/zinc: cd /usr/local/src/ wget http://downloads.typesafe.com/zinc/0.3.9...

Как записать в локальный файл с Spark приложения? Пример на Scala

Запускаем spark-shell и выполняем запись в локальный файл на сервере: import java.io.File import com.google.common.io.Files import java.nio.charset.Charset val outputPath = "/home/hdfs/src/HBase/last_key.txt" val outputFile = new File(outputPath) println("Appending to " + outputFile.getAbsolutePath) Files.append("Test message for save into hdfs!!", outputFile, Charset.defaultCharset())

Spark 1.3 Пример работы с базой(vertica) на языке Scala с помощью sparkSQL

Ниже приведён код инициализации соединения и выбора данных с базы данных через jdbc DriveManager: import org.apache.spark._ import org.apache.spark.sql.SQLContext import java.sql.{Connection, DriverManager, ResultSet} val conn_str = "jdbc:vertica://127.0.0.1:5433/testdbname?user=testuser&password=testpass" var conn: java.sql.Connection = null conn = DriverManager.getConnection(conn_str); val statement = conn.createStatement() val resultSet = statement.executeQuery("SELECT * FROM public_chema.users WHERE id=777") resultSet.next() println("data from id: " + resultSet.getString(1)) println("data from email: " + resultSet.getString(2)) //make update or insert val sql_update = "UPDATE public_chema.test_table SET email = '" + resultSet.getString(2) + "' WHERE id=" + resultSet.getString(1) //val sql_update = "INSERT INTO public_chema.test_table (email, id) VALUES ('" + resultSet.getString(2) + "...

Scala - конкатенация строк. Формируем строку для SQL запроса

Этот пример показывает как можно быстро сформировать строку для INSERT запроса в базу данных: import scala.collection.mutable.ArrayBuffer var sql_insert_arr = ArrayBuffer[String]() var sql_insert_str = "INSERT INTO test_table VALUES " sql_insert_arr += "('user_id_1', 'user_email_1', 'user_age_1')" sql_insert_arr += "('user_id_2', 'user_email_2', 'user_age_2')" sql_insert_str = sql_insert_str + sql_insert_arr.mkString(",")