Как скомпилировать программы spark-cassandra с помощью scala?

В последнее время я начал изучать искру и кассандру, я знаю, что мы можем использовать искру как в python, так и в scala и java, и я прочитал документы на этом веб-сайте: https://github.com/datastax/spark-cassandra-connector/blob/master/doc/0_quick_start.md, дело в том, что после того, как я создаю программу с именем testfile.scala с теми кодами, которые указаны в документе (я не знаю, правильно ли я использую .scala), однако я не знаю, как ее скомпилировать, может ли кто-нибудь помочь мне что с этим делать? Вот testfile.scala:

import com.datastax.spark.connector._
import com.datastax.spark.connector.streaming._


val conf = new SparkConf(true).set("spark.cassandra.connection.host", "127.0.0.1")

val sc = new SparkContext("spark://127.0.0.1:7077", "test", conf)

val ssc = new StreamingContext(conf, Seconds(n))

val stream = ssc.actorStream[String](Props[SimpleStreamingActor], actorName,          StorageLevel.MEMORY_AND_DISK)

val wc = stream.flatMap(_.split("\\s+")).map(x => (x, 1)).reduceByKey(_ + _).saveToCassandra("streaming_test", "words", SomeColumns("word", "count"))

val rdd = sc.cassandraTable("test", "kv")

println(rdd.count)

println(rdd.first)

println(rdd.map(_.getInt("value")).sum)

person IChocolateKapa    schedule 19.08.2014    source источник


Ответы (1)


Проекты Scala компилируются scalac, но это довольно низкий уровень: вам нужно настроить пути сборки и управлять всеми зависимостями, поэтому большинство людей прибегают к некоторым создайте такой инструмент, как sbt, который будет управлять многими вещами за вас. Двумя другими часто используемыми встроенными инструментами являются maven, который предпочитают любители старой школы Java, и gradle, который более приземлен.

> как импортировать spark-cassandra-connector

Я создал пример проекта. По сути, вы определяете все свои зависимости в файле build.sbt или его аналоге, вот как определяется зависимость от spark-cassandra-connector (строка №12).

> И это правило, что мы должны кодировать с классом или объектом

Да и нет. Если вы кодируете с помощью sbt, все ваши файлы кода должны быть обернуты в объект, но sbt позволяет вам кодировать в своей оболочке, и код, который вы вводите в него, не требуется оборачивать (те же правила, что и с обычным scala REPL). Кроме того, и в IDEA, и в Eclipse есть возможности работы с таблицами, так что вы можете создайте test.sc и набросайте там свой код.

person om-nom-nom    schedule 19.08.2014
comment
сегодня я установил sbt, datastax-enterprise и spark-cassandra-connector и узнал, что sbt имеет ту же структуру каталогов, что и Maven. Но я все еще не могу собрать приведенный выше testfile.scala после того, как скопирую каталог com в каталог ресурсов. Я раньше не знал о maven, можете ли вы сказать мне, как использовать spark-cassandra со scala в программе sbt? - person IChocolateKapa; 20.08.2014
comment
Вы должны поместить свой код в src/main/scala, каталог ресурсов для ресурсов, таких как файлы конфигурации, изображения и т. д. — вещи, которые обычно не обрабатываются компилятором кода. - person om-nom-nom; 20.08.2014
comment
Я создаю новый программный каталог с именем Mytest, и внутри него я создаю каталог src и т. д., например структуру maven, затем я помещаю testfile.scala в каталог scala, как импортировать spark-cassandra-connector? И это правило, что мы должны кодировать с классом или объектом? Мне так жаль, что мой английский не очень хорош.... - person IChocolateKapa; 20.08.2014
comment
Я должен задать вам больше вопросов по следующему ответу ниже, потому что он слишком длинный, чтобы поместиться здесь. Большое спасибо... - person IChocolateKapa; 21.08.2014