Вопросы с тегами [scala]

1

голосов
2

ответ
177

Просмотры

почему мы не можем иметь заглавные буквы в кортеже объявления переменных в Скале

Почему мы не можем иметь буквы в переменном кортеже, Как я создаю Testdata он бросает Вэла ошибки (trainingData, TestData): Tuple2 [RDD [LabeledPoint], RDD [LabeledPoint]] = (расколы (0), расщепляется ( 1))
wctapasadan
1

голосов
2

ответ
35

Просмотры

Using alternative super class constructor in child class instantiation

У меня есть базовый класс с двумя конструкторами, и дочерний класс, который имеет один конструктор. Можно ли создать экземпляр класса ребенка с помощью второго конструктора базового класса? Пример код: абстрактный класс RuleCondition (правило: Правило, поле: String, равный: Boolean, перевернутый: Boolean) {// альтернативный конструктор с RuleValue вместо статического значения Comparation четкости (это правило: Правило, поля: String, исй: RuleValue, равна: Boolean = ложь, инвертируется: Boolean = ложь) = ??? } Класс RuleConditionAbove (правило: Правило, поле: String, comparationValue: Длинные, равно: Boolean = ложь, перевернутый: Boolean = ложь) продолжается RuleCondition (правило, поле, равное, перевернутый) {// ...} Теперь я могу делать это: вал myAboveCondition = новый RuleConditionAbove (правило, "ли", 10, правда, ложь), но я не могу это сделать: Вэл myAboveCondition = новый RuleConditionAbove (правило, "л", RuleValue (...), правда, ложь), так как альтернативный конструктор RuleCondition базового класса не видно. Это будет видно, как только я добавить это дочерний класс: Защита этого (правило: Правило, поля: String, реф: RuleValue, равный: Boolean = ложь, перевернутый: Boolean = False) = это (правило, поле, хол, равным , перевернутый) будет ли это единственный / обычный способ решения этой проблемы, или есть что-то умное, который включает в себя меньше копии & прошлом код? (Так как у меня есть тонны дочерних классов одного и того же рисунка) [править] Для того, чтобы уточнить, второй конструктор будет таким же в каждом дочернем классе, таким образом, я хотел бы, чтобы он реализован только один раз в базовом классе. Однако до сих пор приходится ставить другой конструктор в каждом дочернем классе победит эту цель какой-то образом, и, таким образом, я не имел бы два конструктора базовый класс, а скорее только во всех дочерних классах. истина, ложь), так как альтернативный конструктор RuleCondition базового класса не виден. Это будет видно, как только я добавить это дочерний класс: Защита этого (правило: Правило, поля: String, реф: RuleValue, равный: Boolean = ложь, перевернутый: Boolean = False) = это (правило, поле, хол, равным , перевернутый) будет ли это единственный / обычный способ решения этой проблемы, или есть что-то умное, который включает в себя меньше копии & прошлом код? (Так как у меня есть тонны дочерних классов одного и того же рисунка) [править] Для того, чтобы уточнить, второй конструктор будет таким же в каждом дочернем классе, таким образом, я хотел бы, чтобы он реализован только один раз в базовом классе. Однако до сих пор приходится ставить другой конструктор в каждом дочернем классе победит эту цель какой-то образом, и, таким образом, я не имел бы два конструктора базовый класс, а скорее только во всех дочерних классах. истина, ложь), так как альтернативный конструктор RuleCondition базового класса не виден. Это будет видно, как только я добавить это дочерний класс: Защита этого (правило: Правило, поля: String, реф: RuleValue, равный: Boolean = ложь, перевернутый: Boolean = False) = это (правило, поле, хол, равным , перевернутый) будет ли это единственный / обычный способ решения этой проблемы, или есть что-то умное, который включает в себя меньше копии & прошлом код? (Так как у меня есть тонны дочерних классов одного и того же рисунка) [править] Для того, чтобы уточнить, второй конструктор будет таким же в каждом дочернем классе, таким образом, я хотел бы, чтобы он реализован только один раз в базовом классе. Однако до сих пор приходится ставить другой конструктор в каждом дочернем классе победит эту цель какой-то образом, и, таким образом, я не имел бы два конструктора базовый класс, а скорее только во всех дочерних классах. ложь), так как альтернативный конструктор RuleCondition базового класса не видно. Это будет видно, как только я добавить это дочерний класс: Защита этого (правило: Правило, поля: String, реф: RuleValue, равный: Boolean = ложь, перевернутый: Boolean = False) = это (правило, поле, хол, равным , перевернутый) будет ли это единственный / обычный способ решения этой проблемы, или есть что-то умное, который включает в себя меньше копии & прошлом код? (Так как у меня есть тонны дочерних классов одного и того же рисунка) [править] Для того, чтобы уточнить, второй конструктор будет таким же в каждом дочернем классе, таким образом, я хотел бы, чтобы он реализован только один раз в базовом классе. Однако до сих пор приходится ставить другой конструктор в каждом дочернем классе победит эту цель какой-то образом, и, таким образом, я не имел бы два конструктора базовый класс, а скорее только во всех дочерних классах. ложь), так как альтернативный конструктор RuleCondition базового класса не видно. Это будет видно, как только я добавить это дочерний класс: Защита этого (правило: Правило, поля: String, реф: RuleValue, равный: Boolean = ложь, перевернутый: Boolean = False) = это (правило, поле, хол, равным , перевернутый) будет ли это единственный / обычный способ решения этой проблемы, или есть что-то умное, который включает в себя меньше копии & прошлом код? (Так как у меня есть тонны дочерних классов одного и того же рисунка) [править] Для того, чтобы уточнить, второй конструктор будет таким же в каждом дочернем классе, таким образом, я хотел бы, чтобы он реализован только один раз в базовом классе. Однако до сих пор приходится ставить другой конструктор в каждом дочернем классе победит эту цель какой-то образом, и, таким образом, я не имел бы два конструктора базовый класс, а скорее только во всех дочерних классах.
user826955
1

голосов
2

ответ
98

Просмотры

While Loop с фьючерсами в Scala

У меня есть два метода: Защита getNextJob: Future [Option [Job]] четкость процесс (работа: работа): Future [Unit] Я хотел бы обработать все, пока не остались рабочие мест. Я могу сделать это с помощью AWAIT например частного четкости процесса () (неявное CTX: ExecutionContext): Future [Unit] = {уаг задание: Вариант [Работа] = Await.result (service.getNextJob, FiniteDuration (2, TimeUnit.SECONDS)) в то время как (job.isDefined) {Await.result (процесс (job.get), FiniteDuration (2, TimeUnit.SECONDS)) работа = Await.result (service.getNextJob, FiniteDuration (2, TimeUnit.SECONDS))} Future.successful ()} Но это некрасиво и не использует фьючерсы должным образом. Есть ли способ, которым я мог приковать фьючерсы как-то заменить это?
Edd
1

голосов
2

ответ
27

Просмотры

Как изменить путь к файлу учетных данных (без переменной окружения)

В настоящее время я установить путь к файлу учетных данных, как это: учетные данные + = Credentials (Path.userHome / «.myfolder» / „my.credentials“) на локальном компьютере это работает, потому что результаты Path.userHome в ~. Однако, по результатам Дженкинс Path.userHome в / корень, и я не в состоянии создать .myfolder в / корень во время сборки, потому что я получаю разрешение отказано ошибка. Я пытаюсь изменить путь к файлу полномочия на /home/jenkins/.myfolder/my.credentials. Однако, когда я полномочия + = Полномочия ( «/ главная / Jenkins / .myfolder / my.credentials») Я получаю сообщение об ошибке выполнения, поскольку применяется метод полномочий принимает java.io.File. Вопрос: Как я могу передать в /home/jenkins/.myfolder/my.credentials по проверке полномочий?
Anthony
0

голосов
0

ответ
5

Просмотры

Использование Slick с Куду / Impala

Таблицы Куду могут быть доступны через Impala, таким образом, его драйвер JDBC. Благодаря тому, что это через стандартный, доступная Java / лестницу JDBC API. Мне было интересно, если это возможно, использовать пятно для него. Или, если не какие-либо другие рамки дб высокого уровня поддержки impla Scala / куды.
abalcerek
1

голосов
1

ответ
31

Просмотры

Избегайте печати коды при выполнении сценариев в свече оболочке

Я пытаюсь подключиться к БД с искровой в оболочке с использованием сценариев в файле лестница. При подключении скрипта требуется пароль из другого места, но это печать в консоли искрового оболочки. Я просто хочу, чтобы избежать их. Код в Scala, как показано ниже, Вэл конфигурации = Map ( "драйвер" -> "имя_драйвера", "URL" -> "DbUrl", "пользователь" -> "Имя пользователя", "пароль" -> "741852963"); При загрузке этого кода в искровой оболочке печатается код в искровой оболочке тоже. Я хочу, чтобы они одни части, чтобы не печатать в свече консоли. Как я могу добиться этого?
John Humanyun
1

голосов
3

ответ
47

Просмотры

Почему вы расширяете Сериализуемыми в Scala?

Я иду через некоторые проекты Sapark в Scala, и я вижу, что все объекты расширяет Serializable. Это как: объект SomeName расширяет Сериализуемый {// некоторый код} Я понимаю, что сериализация часто используется для хранения или передач структур данных, так что данные могут быть легко загружены в память в первоначальном виде, от последовательной формы. Однако, в этом случае объект больше похож на класс Java. Итак, что точка или преимущество расширения Serializable? Когда вы это делаете? Нужно всегда делать это?
div93
1

голосов
4

ответ
296

Просмотры

Подпорные аргументы передаются в конструктор суперкласса

В Scala никаких методов не может быть использовано на текущем экземпляре, когда конструктор суперкласса вызывается. Таким образом, нет никакой возможности для метода, который будет вызван, который будет запоминать значение, которое он возвращается, в текущем экземпляре. Как я могу сохранить аргументы, полученные дать конструктора суперкласса, в то же время с помощью наследования, в отличие от композиции, и без изменения исходного кода класса я наследует от?
Robin Green
1

голосов
3

ответ
711

Просмотры

Реферирование функция параметров одного и того же имени

Предположу, у меня есть черта, которая имеет Вэла одного и то же имя в качестве параметра функции, которая пытается создать признак экземпляр: Защита FUNC (пары: String) {вал _param = пары нового SomeTrait {Вэлы пары = _param}} Есть есть лучший способ для ссылки на параметре функции «пары»?
Dzhu
0

голосов
0

ответ
11

Просмотры

how to pass a SparkContext from pyspark file to a scala UDF?

У меня есть файл pyspark и мои основные коды, написанные на Python в этом файле. а также у меня есть файл Scala, который содержит некоторые функции, написанные в Scala и использовать их как UDF, в pyspark коде. Теперь мне нужно прочитать файл CSV как Спарк DataFrame в функциях Scala. для этого мне нужно создать SparkSession или SparkContext. Это моя функция Scala: объект GetProductNameScalaUDF {VAL искра = org.apache.spark.sql.SparkSession.builder.master ( "нить") APPNAME ( "некоторое название приложения") getOrCreate () Вал csv_df = spark.read... . формат ( "CSV") вариант ( "заголовок", "истина") нагрузка ( "/ путь / file.csv") Защита SomeFunction (someParameterFromPythonCode: Int). {// Я использую csv_df в этой функции! ...} Защита getProductName (): UserDefinedFunction = UDF (SomeFunction _)}, но SparkContext уже создан в pyspark файл и когда я запускаю его, я сталкиваюсь ошибку вроде этого: org.apache.spark.SparkException: Не удалось получить broadcast_16_piece0 из broadcast_16 я уже видел этот вопрос это как у меня, и я обнаружил, что проблема несколько SparkContext, созданных как в pyspark файле и Scala файл, но я попробовал свои ответы, и они не работали. Я также видел этот вопрос, чтобы пройти SparkContext или SparkSession в качестве параметра из pyspark файла в функции Scala, но от pyspark к функции питона и что не работает ни. Мой вопрос, я создаю SpaekContext и SparkSession в pyspark файл и хочу, чтобы передать их в качестве параметров функций Scala. Как я могу добиться этого? это мой питон код: СБН = SparkContext () sqlContext = SQL.
Ali AzG
0

голосов
2

ответ
263

Просмотры

Может ли класс типа имеет абстрактный Scala элементы типа?

У меня есть этот класс типов: запечатанные Trait DbValueOps [T Некоторые из них (новый DbString (newContent)) случай ложного => None} Защита fromString (newContent: String): Опция [DbString] = это (newContent) Защиты isValidContent (newContent: String): ! Boolean = newContent.isEmpty}} Но при попытке использовать экземпляр класса типа что-то вроде dbStringOps.isValidContent (newContent), где newcontent является строкой, я получаю несоответствие типов: найдено: newContent.type (с подстилающим типом String) требуется : database.DbOps.dbStringOps.RI может заставить его работать путем преобразования R от абстрактного элемента типа с параметром типа, но это некрасиво, так как R уже определен, когда я пишу реализацию класса типа.
Frederik Baetens
1

голосов
1

ответ
308

Просмотры

Является ли Akka действительно решение для тупиковой ситуации?

Как Описанные здесь Хотя замки кажутся естественным средством поддерживать инкапсуляцию с несколькими потоками, на практике они являются неэффективными и легко привести к тупикам в любом применении в реальной мировом масштабе. Мой вопрос просто, Акка действительно решение для тупиковой ситуации. Я знаю, что до тех пор, как Akka актеры рассматривать объекты как полностью развязаны, что код не соответствует сценарию тупиковой. Но, в императивном программировании также мы можем просто отвязать их и запереть отдельно, не держа замок внутри другой замок, так что не будет сценарий тупиковый вообще в традиционной парадигмы программирования также. что реальный случай использования этого заявления? Есть ли у нас найти случай использования, что может привести к тупиковой сценарий в традиционном программировании, но предотвратить с помощью AKKA модели актера? PS Я очень новичок в Акку, но я могу понять, стек вызовов, общие вопросы памяти и многопоточности в традиционном программировании является очень дорогостоящими в современной компьютерной архитектуре и Акко является хорошим решением в исполнении мудрого. Но хотелось бы знать это специальное заявление также.
user2810472
1

голосов
0

ответ
68

Просмотры

Подсчитайте Départ рейсы из отсортированных данных с использованием Спарк

У меня есть набор данных полетов в виде + ---------------- + ---------- + ---------- --- + | flightID | depart_ts | arrival_ts | + ---------------- + ---------- + ------------- + | 1 | 1451603468 | 1451603468 | | 2 | 1451603468 | 1451603468 | | 3 | 1451603468 | 1451603468 | | 4 | 1451603468 | 1451603468 | | 5 | 1451603468 | 1451603468 | + ---------------- + ---------- + ------------- + и моя работа состоит в том, чтобы использовать Apache Спарк, чтобы найти обратный рейс для каждого полета данного некоторых условий (время отправления обратного полета B должен быть в течение 2-х часов с времени прибытия рейса A). Выполнение перекрестного соединения оГО Record, чтобы проверить эти условия не является эффективным и будет стоить много времени. Я думал об использовании функции окна с 1 раздела и пользовательского UDAF сделать расчет. Что-то вроде этого 1. Вал flightsWindow = Window.orderBy ( "depart_ts"). rangeBetween (0, 7200) 2. flights.withColumn ( "returnFlightID", calcReturn ($ "arrival_ts", $ "depart_ts"). над (flightsWindow)). показать () Учитывая, что такой подход приведет к решению, я столкнулся с некоторыми проблемами: в строке 1, я хочу, чтобы интервал диапазона кадров из текущей строки до arrival_ts + 7200, но, видимо, я не могу сделать динамический диапазон в искры, нет? В строке 1 и при условии, что 2 рейса имеет одинаковое время прибытия, это сделает невозможным для извлечения значений второго полета, когда CURRENT_ROW указатель перемещается туда, так как разность между первым полетом и вторым полетом 0. Можно явно указать диапазоне, чтобы начать кадрирование от CURRENT_ROW? В строке 2, Я хочу, чтобы получить значение depart_ts для самой первой строки кадра для сравнения с другими рейсами в кадре. Можно ли сделать это. Я попробовал первую функцию (), но она не подходит в моем случае.
Assem
1

голосов
0

ответ
743

Просмотры

Как вводить JSON исходя из питателя внутри тела с Гатлинга

У меня есть Гатлинга сценарий, который создать объект Http создать пост запрос с органом, учрежденным сценарий я могу впрыснуть тело из JSon файла, содержащего это: [{ «ID»: «1»}] На данный момент у меня нет проблема. Мой вопрос находится на втором пункте. Я хочу, чтобы пользователи имели ихний фид тела с другим идентификатором. Так что я думаю, что я должен использовать кормушку для того, чтобы установить тело для каждого пользователя из JSon Array. Файл в формате JSON, который я использую в качестве питателя, как это: [{ "ID": "1"}, { "ID": "2"}, { "ID": "3"}, { "ID": "4 "}, {" идентификатор ":" 5 "}, {" идентификатор ":" 6 "}, {" идентификатор ":" 7 "}, {" идентификатор ":" 8 "}, {" идентификатор ":" 9 "}, {" идентификатор ":" 10 "}, {" идентификатор ":" 11" }, { «ID»: «12»}, { «ID»: «13»}] Я не знаю синтаксис впрыснуть внутри тела значения наступающем из питателя. У меня есть поддельные линии тела в приведенной ниже коде, которым не работает, вы ставите, но я не то, что следует заменить эту строку. Линия имеет комментарий: импорт io.gatling.core.Predef._ импорт io.gatling.http.Predef._ импорта io.gatling.jdbc.Predef._ импорта io.gatling.http.HeaderNames._ импорта io.gatling .http.request._ импорт scala.concurrent.duration._ класса импорта scala.concurrent.duration._ BasicSimulation расширяет Simulation {вал httpConf = HTTP .baseURL ( "HTTP: // локальный: 8099") .headers (Карта (» Content-Type "-> "приложения / JSON")) .doNotTrackHeader ( "1") .acceptLanguageHeader ( "EN-US, ан; д = 0,5") .acceptEncodingHeader ("
a.moussa
1

голосов
1

ответ
1.3k

Просмотры

Как я могу установить старую версию (0.13.x) SBT на моем MAC?

Мне нужно SBT версии 0.13.x для курса в Scala и у меня возникли трудности установки. Я попытался с помощью команды «заварить установить [email protected]», но когда я потом сверяться с «SBT о» это дает сообщение «Нет такого файла или каталога». Однако, если я еще раз попытаться сделать «заварить установить [email protected]», это дает «Внимание: [email protected] 0.13.16 уже установлена», хотя «SBT о» ничего не находит. В дополнении к этому, я попытался установить последнюю версию SBT с «варкой установить SBT», а затем вручную изменив версию каждые из моих проектов, используя введя «sbt.version = 0.13.12» в данном «build.properties» файл. Это, казалось, работали на начальном этапе, когда я проверяю с терминалом версии SBT внутри проекта. Тем не менее, я до сих пор не в состоянии импортировать уже существующие проекты. В заключение, Я скачал версию от http://www.scala-sbt.org/download.html но мне нужно сделать некоторые исправления в мой «PATH» от того, что я прочитал в Интернете, и я не уверен, что это значит. Таким образом, я был бы признателен, если кто-то может мне помочь с установкой более старой версии.
kris
1

голосов
0

ответ
69

Просмотры

Covariance annotation raises incorrect implicit ambiguity error

Ниже код вызывает неявную не найдено ошибку, что опция -Xlog-implicits SBT объясняет, как двусмысленности, которую я вставленный в конце: импорт scala.language.higherKinds черт JsonOFormat [Т] черта BsonOFormat [Т] Кодек черт [CTXO [ _]] неявное защиту jsonCodec: кодек [JsonOFormat] = новый кодек [JsonOFormat] {} неявного защиту bsonCodec: кодек [BsonOFormat] = новый кодек [BsonOFormat] {} черта CApply [Т, Н + CTXO [_]] {Защита применяются (т: Т): CTXO [N] = ??? } Объект CApply {класс CApplyBuilder [CTXO [_]] {Защита экземпляра [Т, Н] (неявный cApply: CApply [Т, Н, CTXO]) = новый CApply [Т, Н, CTXO] {}} четкость CTX [CTXO [_]]: CApplyBuilder [CTXO] = новый CApplyBuilder [CTXO] неявное четкости по умолчанию [Т, Н, CTXO [_]] (неявное Нс: кодек [CTXO]): CApply [Т, Н, CTXO] = новый CApply [ Т, Н, CTXO] {}} CApply.ctx [JsonOFormat] .instance [String, Int] // информация: (23, 34) A $ A261.this.CApply. по умолчанию не является допустимым неявные значения // для A $ A261.this.CApply [String, Int, A $ A261.this.JsonOFormat], потому что: // hasMatchingSymbol сообщила об ошибке: неоднозначный неявные значения: // как метод bsonCodec в классе А $ A261 типа => A $ A261.this.Codec [а $ A261.this.BsonOFormat] // и метод jsonCodec в классе а $ A261 типа => A $ A261.this.Codec [A $ A261.this. JsonOFormat] // матч ожидается тип A $ A261.this.Codec [CTXO] //CApply.ctx[JsonOFormat].instance[String,Int] ^ объяснение говорит, что мой CTXO остался компилятор быть решен (infered ) в качестве параметра. Но это не правильно, я явно установить JsonOFormat в CTXO. Конечно, как и в большинстве таких случаев, что удаление ковариационной аннотации на CApply [T, N, + CTXO [_]] делает ошибку уйти. Но остальная часть моей библиотеки, как это теперь зависит от того, что аннотации.
shayan
1

голосов
0

ответ
560

Просмотры

Искра работы dataframe запись в Oracle с помощью JDBC упущения

При написании искровой dataframe к базе данных Oracle (Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64-битный), искра работа терпит неудачу с java.sql.SQLRecoverableException исключения: Ошибка ввода-вывода: Сетевой адаптер не может установить соединение. Код Scala является dataFrame.write.mode (SaveMode.Append) .jdbc ( "JDBC: оракул: тонкий: @" + ipPort + ":" + с.и.д., стол, реквизит) Уже попытался установить ниже свойство для соединений JDBC, но hasn» т работал. props.put ( "водитель", "oracle.jdbc.OracleDriver") props.setProperty ( "testOnBorrow", "правда") props.setProperty ( "testOnReturn", "ложь") props.setProperty ( "testWhileIdle", "ложь ") props.setProperty (" validationQuery», "SELECT 1 FROM DUAL") props.setProperty ( "autoReconnect", «Правда») на основе предыдущих результатов поиска, то кажется, что соединение открыто изначально, но был убит брандмауэром через некоторое время простоя. URL соединения проверяется и работает как выберите запросы работают отлично. Нужна помощь в получении этого решить.
Abhishek Joshi
1

голосов
0

ответ
159

Просмотры

Как выполнить Ttest Уэлча в Спарк 2.0.0 с помощью StreamingTest

Я хочу попробовать T-тест Уэлча в Спарк 2.0.0 Как я знаю, что могу использовать StreamingTest () из mllib на этом сайте. [Https://spark.apache.org/docs/2.0.0/api/scala/index.html#org.apache.spark.mllib.stat.test.StreamingTest] это мой код в искровой оболочке импорт орге. apache.spark.mllib.stat.test. {BinarySample, StreamingTest} импорт org.apache.spark. {SparkContext, SparkConf} импорт org.apache.spark.streaming. {Seconds, StreamingContext} импорт org.apache.spark.storage. StorageLevel импорт org.apache.log4j. {Уровень, Logger} Logger.getRootLogger.setLevel (Level.WARN) вал ЦМК = новый StreamingContext (SC, секунды (30)) ssc.checkpoint ( "./ контрольная точка") данные знач = ССК .textFileStream ( "/ datatest / sample1.csv"). карта (линия => line.split ( "") совпадение {случай Массив (метка, значение) => BinarySample (label.toBoolean, значение. toDouble)}) Вал streamingTest = новый StreamingTest (). setPeacePeriod (0) .setWindowSize (0) .setTestMethod ( "Welch") = вал из streamingTest.registerStream (данные) out.print () ssc.start () ssc.awaitTermination () и sample1.csv будет, как это значение TRUE, FALSE, 11, 43 FALSE, 2 ИСТИНЫ, 5 ИСТИНЫ, 3 ИСТИНЫ, 4 ИСТИНЫ, 122 ИСТИНЫ, 153 FALSE, 153 FALSE, 151 ИСТИНЫ, 153 ИСТИНЫ, 154 ... и я получил эту ошибку. 18/01/17 15:50:30 WARN FileInputDStream: Ошибка поиска новых файлов java.lang.NullPointerException в scala.collection.mutable.ArrayOps $ ofRef $ .length $ расширения (ArrayOps.scala: 192) в scala.collection.mutable .ArrayOps $ ofRef.length (ArrayOps.scala: 192) при scala.collection.SeqLike $ class.size (SeqLike.scala: 106) в scala.collection.mutable.ArrayOps $ ofRef.size (ArrayOps.scala: 186) на scala.collection.mutable.Builder $ class.sizeHint (Builder. spark.streaming.scheduler.JobGenerator $$ Анон $ 1.onReceive (JobGenerator.scala: 89) в org.apache.spark.streaming.scheduler.JobGenerator $$ Анон $ 1.onReceive (JobGenerator.scala: 88) в org.apache. spark.util.EventLoop $$ Анон $ 1.run (EventLoop.scala: 48) Я думаю, что данные sample1.csv неправильно для применения к параметру StreamingTest.registerStream () Я не могу понять, какой тип данных требуется для параметр. или я только что нашел еще один WelchTTest (). Я еще не знаю, что он не отличается. [Https://spark.apache.org/docs/2.0.0/api/java/org/apache/spark/mllib/stat/test/WelchTTest.html] 48) Я думаю, что данные sample1.c неправильно для применения к параметру StreamingTest.registerStream () Я не могу понять, какой тип данных требуется для параметра. или я только что нашел еще один WelchTTest (). Я еще не знаю, что он не отличается. [Https://spark.apache.org/docs/2.0.0/api/java/org/apache/spark/mllib/stat/test/WelchTTest.html] 48) Я думаю, что данные sample1.c неправильно для применения к параметру StreamingTest.registerStream () Я не могу понять, какой тип данных требуется для параметра. или я только что нашел еще один WelchTTest (). Я еще не знаю, что он не отличается. [Https://spark.apache.org/docs/2.0.0/api/java/org/apache/spark/mllib/stat/test/WelchTTest.html]
Jchanho
1

голосов
1

ответ
257

Просмотры

Scala макросы: генерировать код на основе содержимого файла

Я хотел бы генерировать классы SCALA на основе некоторых файлов. Размещение файлов не имеет значения (это может быть папка ресурсов или файлы могут быть размещены в непосредственной близости моих исходных файлов Scala). Как я могу читать их, когда макрос Scala выполняется? (Я использую встроенный StaticAnnotation в Защите применить (defn: Любой): Любой метод) Когда я пытаюсь использовать ресурсы, они не могут быть найдены (я полагаю, эти ресурсы не могут быть найден, потому что это время компиляции и проект еще не составлен) Я хотел бы, чтобы прочитать файлы, помещенные прямо возле моих источников SCALA, но как я могу получить путь к файлу источника при макрос выполняется?
Evgeny Nacu
1

голосов
1

ответ
188

Просмотры

Scala: Как определить пользовательский GroupBy для класса (так же, как упорядочение)

У меня есть этот случай класс Box (ID: Long, версия: String) объект Box {неявной четкость упорядочение [A
user2430696
1

голосов
1

ответ
93

Просмотры

optimize/tune setting to spark job, where the job uses groupbyKey and reduceGroups

Привет Я пытаюсь увидеть, если есть какие-либо параметры, такие как исполнитель память, ядер, раздел в случайном порядке или что мы можем думать о том, что может ускорить работу, которая включает в себя объединение, GroupByKey и reduceGroups операция Я понимаю эти интенсивные операции выполнять и ее в настоящее время с 5 часов, чтобы закончить это. (Ключевые _.) .ReduceGroups .union (переходный) .union (семейство) .groupByKey ((левый, правый) => искра подать "Step5_Spark_Command": Пример: «Команда-runner.jar, искровым представить, - класс, com.ms.eng.link.modules.linkmod.Links, - название, \\\ "Ссылки \\\", - мастер, пряжа, - развернуть режим, клиент, - исполнитель-памяти, 32G, --executor-сердечники, 4, - CONF, spark.sql.shuffle.partitions = 2020, / главная / Hadoop / linking.jar, JobId = # {myJobId}, окружающая среда = Prod», функция Val семьи = generateFamilyLinks ( ссылки, superNodes.filter (_.
dedpo
1

голосов
1

ответ
463

Просмотры

Как получить текущее время ожидания запроса сервера в Акко HTTP

Akka HTTP позволяет запрашивать тайм-ауты установить из глобальной настройки в application.conf или модифицированы на основе каждого маршрута с директивами. Как мы можем получить тайм-аут запроса для текущего запроса и маршрута? Что-то вроде withRequestTimeout (FiniteDuration (5, TimeUnit.SECONDS)) {extractRequestTimeout {таймаута => полная (s "запрос будет таймаут в $ тайм-аут") // запрос будет таймаут в 5 секунд}} будет совершенным.
kag0
1

голосов
0

ответ
64

Просмотры

Add a column value in a row based on every values of this same row

Мой вопрос может быть тупым или что-нибудь еще. Но мне было интересно: я хочу сделать структурированные потоковым я хочу как агрегировать и оценку данных с помощью модели газированной воды Так у меня есть этот VAL data_processed = data_raw .withWatermark ( «метка», «10 минут») .groupBy (окно ( Седло ( "метки времени"), "1 минута")) .agg (*** все агрегирование ***) То, что я хочу добавить, как: .withColumn ( "row_scored", скоринг (all_others_cols)) Так что для каждой строки структурированная потоковый он забьет после агрегации. Но я не думаю, что может быть возможно. Так что мне интересно, если вы думаете о другом подходе. Я использую газированную воду, так что функции озвучивания нуждается в H2O Frame. Я думал создать UDF вроде: выбрать все остальные столбцы, создать строку и преобразовать его в dataframe преобразовать dataframe, состоящий из одного ряда в H2O Рама предсказать H2O Рама из одной строки преобразовать предсказание от H20 ​​рамы для dataframe получить счет в dataframe удвоить и вернуть его с UDF Но я не» т думает, что это вполне оптимизирован, может быть, у вас есть новый подход или замечания, которые сделают увидеть еще один способ сделать это. заранее спасибо
tricky
1

голосов
2

ответ
23

Просмотры

Scala - Как получить ту же часть два РДА?

Есть два РДД: Val rdd1 = sc.parallelize (Список (( "ааа", 1), ( "БББ", 4), ( "ссс", 3))) = Val rdd2 sc.parallelize (Список ((» ааа», 2), ( "БББ", 5), ( "дДД", 2))) Если я хочу присоединиться к тем, первым полем и получить результат, как: Список (( "ааа", 1,2) ( "БББ", 4, 5)) Что я должен закодировать? Thx !!!!
Ryan Wang
1

голосов
0

ответ
197

Просмотры

spark.task.cpus changed runtime - speedup pairwise comparisons

I've read some of the previous posts and sadly I think I can't do what I would like to do, but maybe there is a recent solution that I don't know about. I would like at a certain point to perform some parallel operations within a map using the parallel collections provided by the Scala standard library. However, I understood that I should set at the beginning of my Spark execution the spark.task.cpus to assign to each task a sufficient number of cores. My configuration is made of 14 nodes with 8 cores each. Within a map, I have two collections of points that should be compared using the Euclidean distance to check if at least one pair respects a distance threshold. Consequently, I end up with something like: collection1.exists(point1 => collection2.exists(point2 => dist(point1, point2)
Luca
1

голосов
3

ответ
71

Просмотры

Scala-струнная работа фильтра из нового обучающегося

Есть некоторые строки, как: "A, C, D" "A, C" "А, В" "B, C" "D, F" "G, D, H" Если я хочу, чтобы отфильтровать эти строки с помощью клавиши : А, С. Это означает, что если строка содержит или C, я возьму его. Например, с помощью этого правила, я получаю: «A, C, D» «A, C» «А, Б», «В, С» Как я должен закодировать эту функцию?
Wangkkkkkk
1

голосов
0

ответ
32

Просмотры

Изменение импорта, которые всегда в объеме в Intellij

В моем проекте Scala я решил изменить предопределенный импорт. По умолчанию компилятор помещает: импортировать java.lang._ импорт scala._ импорта scala.Predef._ в сферу, но можно управлять с помощью флагов компилятора. И вот что мне любопытно - есть настройки, скрытые настройки или плагин, который позволяет мне изменить, добавить или переопределить импортирует Intellij думает, всегда присутствует?
Mateusz Kubuszok
1

голосов
0

ответ
176

Просмотры

scala sbt common dependencies for multiple external projects with subprojects without plugin

Ниже моя ситуация: Я хочу что-то вроде: корень --ProjectSetA --SubProjectA1 --SubProjectA2 --project / Зависимости --DepA1 --DepA2 --build.sbt (агрегировать все Seta) --ProjectSetB --SubProjectB1 - -SubProjectB2 --project / зависимости --DepB1 --DepB2 --build.sbt (агрегировать все в SETB) --build.sbt (агрегированный все в корень) Есть две вещи, которые я хочу сделать, не создавая внешний SBT плагин : 1) Я хотел бы что-то вроде в ProjectSetB / build.sbt ленивого вала newProjectInSetB = Project (..., зависимость = LocalProject (SubProjectB1) ++ как-нибудь (SubProjectA1)) есть способ реализации функции "Какая-то образом () без внедрения нового плагина? 2) Я хотел бы также в ProjectSetB / проекта / Зависимости частных Вэл json4sJacksonLib = «org.json4s» %% "json4s-джексон" % "3.4.1" Вал newProjectInSetBDep = Seq (json4sJacksonLib, так или иначе (DepA1)) есть способ для реализации функции 'Какой-то образом ()' без реализации нового плагина? Я открыт для реструктуризации / перемещения зависимости в общем доступном месте для всех внешних проектов.
abroy
1

голосов
1

ответ
217

Просмотры

ClassCastException while deserializing with Java's native readObject from Spark driver

I have two spark jobs A and B such that A must run before B. The output of A must be readable from: The spark job B A standalone Scala program outside of Spark environment (no Spark dependency in) I am currently using the Java's native serialization with Scala case classes. From the A Spark Job: val model = ALSFactorizerModel(...) context.writeSerializable(resultOutputPath, model) with serialization method: def writeSerializable[T OK From the B Spark job running on a (Dataproc) Spark cluster => Fails with the below exception: The exception: java.lang.ClassCastException: cannot assign instance of scala.collection.immutable.List$SerializationProxy to field mycompany.algo.als.common.io.model.factorizer.ALSFactorizerModel.stores of type scala.collection.Seq in instance of mycompany.algo.als.common.io.model.factorizer.ALSFactorizerModel at java.io.ObjectStreamClass$FieldReflector.setObjFieldValues(ObjectStreamClass.java:2133) at java.io.ObjectStreamClass.setObjFieldValues(ObjectStreamClass.java:1305) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2251) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2169) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2027) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:422) at mycompany.fs.gcs.SimpleGCSFileSystem.readSerializable(SimpleGCSFileSystem.scala:71) at mycompany.algo.als.batch.strategy.ALSClusterer$.run(ALSClusterer.scala:38) at mycompany.batch.SinglePredictorEbapBatch$$anonfun$3.apply(SinglePredictorEbapBatch.scala:55) at mycompany.batch.SinglePredictorEbapBatch$$anonfun$3.apply(SinglePredictorEbapBatch.scala:55) at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) at scala.concurrent.impl.ExecutionContextImpl$AdaptedForkJoinTask.exec(ExecutionContextImpl.scala:121) at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) Am I missing something ? Should I configure Dataproc/Spark to support the use of the Java Serialization for this code ? I submit the job with the --jars and never had other issues before. The spark dependencies are not included in this Jar, the scope is Provided. Scala version: 2.11.8 Spark version: 2.0.2 SBT version: 0.13.13 Thanks for your help
ogen
1

голосов
2

ответ
109

Просмотры

Диод. Отправить более 1 действие в цепи

Коллеги, я не могу сделать диод, чтобы отправить себе больше, чем одно действие от другого действия. здесь пример из App схемы: Val Обработчик = новый ActionHandler (myZoomedState) {переопределить четкости обработки = {случай действие => effectOnly (Эффект (someFuture отображение {_ => SomeAction // Это действие не выполняет someOtherAction // Это одно делает })) случай SomeAction => ??? Случай someOtherAction => ??? }} Как можно действия цепи I? Нечто подобное >> ти обратных вызовов: someCallback >> someOtherCallback
Oleg
1

голосов
1

ответ
44

Просмотры

Можно ли запустить Spark, рабочие места (как образец WordCount) в локальном режиме на Cygwin?

Я уверен, выполнение простой искровой код для чтения файлов из локальной системы, но получаю ошибку ниже приведен код на Cygwin консоли: знач заказов = sc.textFile ( «C: /// DataResearch / retail_db / заказы») orders.first () после выполнения orders.first () Я получаю ниже ошибки: java.lang.NullPointerException в java.lang.ProcessBuilder.start (Unknown Source) в org.apache.hadoop.util.Shell.runCommand (Shell.java:404) в org.apache.hadoop.util.Shell.run (Shell.java:379) в org.apache.hadoop.util.Shell $ ShellCommandExecutor.execute (Shell.java:589) в org.apache.hadoop.util.Shell. ExecCommand (Shell.java:678) при org.apache.hadoop.util.Shell.execCommand (Shell.java:661) в org.apache.hadoop.fs.FileUtil.execCommand (FileUtil.java:1097) в org.apache .hadoop.fs.RawLocalFileSystem $ RawLocalFileStatus.loadPermissionInfo (RawLocalFileSystem.java:567) в org.apache.hadoop.fs.RawLocalFileSystem $ RawLocalFileStatus.getPermission (RawLocalFileSystem.java:542) в org.apache.hadoop.fs.LocatedFileStatus. (LocatedFileStatus.java:42) в орг. apache.hadoop.fs.FileSystem $ 4.next (FileSystem.java:1815) в org.apache.hadoop.fs.FileSystem $ 4.next (FileSystem.java:1797) в org.apache.hadoop.mapred.FileInputFormat.listStatus ( FileInputFormat.java:233) в org.apache.hadoop.mapred.FileInputFormat.getSplits (FileInputFormat.java:270) в org.apache.spark.rdd.HadoopRDD.getPartitions (HadoopRDD.scala: 199) в org.apache.spark .rdd.RDD $$ anonfun $ перегородки $ 2.Apply (RDD.scala: 239) в org.apache.spark.rdd.RDD $$ anonfun $ перегородками $ 2.Apply (RDD.scala: 237) в scala.Option.getOrElse (Option.scala:120) при org.apache.spark.rdd.RDD.partitions (RDD.scala: 237) в org.apache.spark.rdd.MapPartitionsRDD.getPartitions (MapPartitionsRDD.scala: 35) в org.apache.spark.rdd.RDD $$ anonfun $ перегородки $ 2.Apply (RDD.scala: 239) в org.apache.spark.rdd.RDD $$ anonfun $ перегородками $ 2.Apply (RDD.scala: 237) в scala.Option.getOrElse (Option.scala : 120) в org.apache.spark.rdd.RDD.partitions (RDD.scala: 237) в org.apache.spark.rdd.RDD $$ anonfun $ взять $ 1.Apply (RDD.scala: 1307) в орг. apache.spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope.scala: 150) при org.apache.spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope.scala: 111) в org.apache.spark.rdd.RDD.withScope ( RDD.scala: 316) в org.apache.spark.rdd.RDD.take (RDD.scala: 1302) в org.apache.spark.rdd.RDD $$ anonfun $ первый $ 1.применяются (RDD.scala: 1342) в org.apache.spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope.scala: 150) в org.apache.spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope.scala: 111) в орг .apache.spark.rdd.RDD.withScope (RDD.scala: 316) на org.apache.spark.rdd.RDD.first (RDD.scala: 1341). в (18) в точке () в точке (..: 7) в. () в $ печати () в sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) в sun.reflect.NativeMethodAccessorImpl.invoke (Unknown Source) в sun.reflect.DelegatingMethodAccessorImpl.invoke (Unknown Source) в Java. lang.reflect.Method.invoke (Unknown Source) в scala.tools.nsc.interpreter.IMain $ ReadEvalPrint.call (IMain.scala: 734) в scala.tools.nsc.interpreter.IMain $ Request.loadAndRun (IMain.scala :983) в scala.tools.nsc.interpreter.IMain.loadAndRunReq $ 1 (IMain.scala: 573) на scala.tools.nsc.interpreter.IMain.interpret (IMain.scala: 604) в scala.tools.nsc.interpreter. IMain.interpret (IMain.scala: 568) в scala.tools.nsc.interpreter.ILoop.reallyInterpret $ 1 (ILoop.scala: 760) в scala.tools.nsc.interpreter.ILoop.interpretStartingWith (ILoop.scala: 805) в scala.tools.nsc.interpreter.ILoop.command (ILoop.scala: 717) при scala.tools.nsc.interpreter.ILoop.processLine $ 1 (ILoop.scala: 581) в scala.tools.nsc.interpreter.ILoop.innerLoop $ 1 (ILoop.scala: 588) в scala.tools.nsc.interpreter.ILoop.loop (ILoop.scala: 591) в scala.tools.nsc.interpreter.ILoop $$ anonfun $ процесса $ 1.Apply $ MCZ $ зр ( ILoop.scala: 882) в scala.tools.nsc.interpreter.ILoop $$ anonfun $ процесса $ 1.Apply (ILoop.scala:837) в scala.tools.nsc.interpreter.ILoop $$ anonfun $ процесса $ 1.Apply (ILoop.scala: 837) в scala.tools.nsc.util.ScalaClassLoader $ .savingContextLoader (ScalaClassLoader.scala: 136) в Скале. tools.nsc.interpreter.ILoop.process (ILoop.scala: 837) в scala.tools.nsc.interpreter.ILoop.main (ILoop.scala: 904) в xsbt.ConsoleInterface.run (ConsoleInterface.scala: 62) на солнце .reflect.NativeMethodAccessorImpl.invoke0 (Native Method) в sun.reflect.NativeMethodAccessorImpl.invoke (Unknown Source) в sun.reflect.DelegatingMethodAccessorImpl.invoke (Unknown Source) в java.lang.reflect.Method.invoke (Unknown Source) в SBT .compiler.AnalyzingCompiler.call (AnalyzingCompiler.scala: 107) при sbt.compiler.AnalyzingCompiler.console (AnalyzingCompiler.scala: 82) при sbt.Console.SBT $ Console $$ console0 $ 1 (Console.scala: 22) в sbt.Console $$ anonfun $ применяются $ 2 $$ anonfun $ применять $ 1.Apply $ мкВ $ зр (Console.scala: 23) в sbt.Console $$ anonfun $ применять $ 2 $$ anonfun $ применять $ 1.Apply (Console.scala: 23) в sbt.Console $$ anonfun $ применяются $ 2 $$ anonfun $ применять $ 1.Apply (Console.scala: 23) в sbt.Logger $$ Anon $ 4.Apply (Logger.scala: 84) в sbt.TrapExit $ App.run (TrapExit.scala: 248) в java.lang.Thread.run (Unknown Source) Может кто-нибудь помочь мне с этим, я говорил ниже, но не знаю, как это работает: можно ли запустить Hadoop рабочих мест (как образец WordCount) в локальном режиме на Windows, без Cygwin?Консоль $$ anonfun $ применять $ 2 $$ anonfun $ применять $ 1.Apply (Console.scala: 23) в sbt.Logger $$ Анон $ 4.Apply (Logger.scala: 84) в sbt.TrapExit $ App.run (TrapExit. Скала: 248) в java.lang.Thread.run (Unknown Source) Может кто-нибудь помочь мне с этим, я говорил ниже, но не уверен, как это работает: можно ли выполнять задания Hadoop (например, образец WordCount) в локальный режим на ОС Windows без Cygwin?Консоль $$ anonfun $ применять $ 2 $$ anonfun $ применять $ 1.Apply (Console.scala: 23) в sbt.Logger $$ Анон $ 4.Apply (Logger.scala: 84) в sbt.TrapExit $ App.run (TrapExit. Скала: 248) в java.lang.Thread.run (Unknown Source) Может кто-нибудь помочь мне с этим, я говорил ниже, но не уверен, как это работает: можно ли выполнять задания Hadoop (например, образец WordCount) в локальный режим на ОС Windows без Cygwin?
Harshit Kakkar
1

голосов
0

ответ
42

Просмотры

используя SCALA-мета, как выводить типы

Я хотел бы быть в состоянии обнаружить полное имя типа типа T, когда он упоминается в какой-либо другой единице компиляции А. Так сказать, А пакет р импорта com.p1.A класса импорт com.p2._ X {Защита method1 : A // обнаружить его как com.p1.A, который я могу сделать из-за импорта четкости method2: B // обнаружить его как com.p2.B, который я не могу в данный момент} я получаю ощущение, что scalameta, вероятно, не самый лучший инструмент для обнаружения типа, есть безопасный / простой способ для обнаружения всех типов?
kostas.kougios
1

голосов
1

ответ
161

Просмотры

Scala.js crossProject против ручной настройки

Для компиляции одного исходного кода с Scala.js и Scala JVM документации говорит использовать crossProject, например ленивым вал Foo = crossProject.in (файл ( «»)). Настройки (имя: = «Foo», версия: = «0,1-ПАНОРАМА») ленивая вал fooJVM = foo.jvm ленивого вал fooJS = foo.js Однако это выглядит, что та же цель может быть достигнута настройкой модулей вручную ленивый знач fooSettings = Seq (имя: = "Foo", версия: = "0,1-СНАПШОТ", scalaSource в Compile: = baseDirectory.value / ".." / "общий" / "SRC" / "главный" / "Скала") ленивым вал fooJVM = project.in (файл ( "JVM")) .settings (fooSettings: _ *) ленивым вал fooJS = project.in (файл ( "JS")) .settings (fooSettings: _ *).
Yaroslav
1

голосов
1

ответ
584

Просмотры

Спарк и Scala, добавить новый столбец со значением из другого dataframe путем сопоставления общего ключа [дубликат]

Этот вопрос уже есть ответ здесь: Как объединить два DataFrames и изменить столбец для отсутствующих значений? 3 ответов Как сделать левое внешнее соединение в свече SQL Server? 3 ответов у меня есть 2 dataframes. df1 = деп-код ранга а 1 BCD 2 df2 = некоторые перевалы ... отд-код ABC BCD а Я хочу, чтобы добавить новый столбец в df2 в ранге с df1.dep-код = результатом df2.dep-кода - некоторые перевалами. .. отд-код ранг а 1 BCD 2 а-
Amey Totawar
1

голосов
0

ответ
13

Просмотры

В случае, если плагин кэш Initialize [Task [T]] объекты?

Метод проб и ошибок, вероятно, в качестве плагина автора я упал в использовании следующего стиля, который, кажется, работает: объект AmazingPlugin расширяет автозагрузку {объект AutoImport {вал удивляет = TaskKey [Удивление] ( «Есть ли что-то совершенно удивительное ядреное»)} импорт autoImport._ ленивым знач ethDefaults: Seq [sbt.Def.Setting [_]] = Seq (поражают в Compile: = {amazeTask (Вкомпилировать) .value}, поражают в тесте: = {amazeTask (тест) .value}) защиту amazeTask (конфигурации: Конфигурация): Инициализировать [Task [изумление]] = {Def.task ??? }} К сожалению, я на самом деле не понимаю, как все эти конструкции работают, почему это Initialize [Task [T]] я произвожу, а не задачи [T], например. Я полагаю, что эта идиома «делает правильную вещь», которую я понимаю, означаю, что функция amazeTask создает некоторую обертку или семя или генератор неизменных задач для каждой конфигурации и связывает его только один раз в соответствующей ключевой задаче. Но это совершенно непрозрачным для меня, как это может работать. Например, когда я смотрю Initialize, я вижу метод значения, который требует аргумент, который я не поставить в идиомы выше. Я предполагаю, что в проектировании конфигурации DSL трюков SBT с implicits и / или макросами были использованы, и пожал ее. Однако, в последнее время я хотел бы учитывать некоторую логику из моих задач в то, что логически частные функции, но которые также требует доступа к значению задач и настроек. Если используются только частные функции, собирая все аргументы стали бы повторяющимися шаблонными из вида валь SETTING1 = (SETTING1 в конфигурации) .value вал Настройки2 = (Настройки2 в конфигурации). значение ... Вэл settingN = (settingN в конфигурации) .value вал derivedValue = somePrivateFunction (Настройки1, Настройки2 ... settingN) везде мне нужно использовать получить значение, полученное из настроек. Так что лучше учитывать все это в задачу derivedValue, и я могу заменить все вышеперечисленное с derivedValue.value KEWL. Но я хочу derivedValue быть частным, так что я не привязать его к одной из ключевых задач. Я просто делаю это: частный Защиту findDerivedValueTask (конфигурации: Конфигурация): Инициализировать [Task [DerivedValue]] = {Def.task вал Настройки1 = (Настройки1 в конфигурации) .value вал Настройки2 = (Настройки2 в конфигурации) .value ... Вэл settingN = (settingN в конфигурации) .value somePrivateFunction (Настройки1, Настройки2 ... settingN)} Теперь он работает отлично реализовать свою реальную, общественную задачу ... Защита amazeTask (конфигурации: Конфигурация): Инициализировать [Task [Удивление]] = Защита. Задача {Вэл derivedValue = findDerivedValueTask (конфигурации) .value // работаем с derivedValue, который вычисляет и объект Изумление ??? } Отлично! Это действительно работает просто отлично. Но у меня есть трудное время предполагая, что есть какая-то магия, с помощью которого эта идиома делает правильно, то есть генерировать неизменяемый объект Task только один раз в конфигурации и использовать его. Так что, я думаю про себя, я должен memoize функцию findDerivedValueTask, так что после того, как она порождает задачу, задача сохраняется в Карте, чьи ключи конфигурация, но значения которых логически задача. Но теперь мой nonunderstanding о том, что происходит за кулисами укусов. Должен ли я хранить Инициализировать [Task [DerivedValue]] или просто задачи [DerivedValue], или что? Есть ли у меня беспокоить, это SBT есть некоторые умные магии, уже заботиться об этом для меня? Я на самом деле просто не знаю. Если вы дочитали до этого, я очень благодарен. Если вы можете выяснить это, или мне точку в документации, которая объясняет, как работает этот материал, я буду еще больше благодарен. Спасибо!
Steve Waldman
1

голосов
1

ответ
540

Просмотры

Написать dataframe на несколько вкладок в Excel листа с помощью искры

Я использую искровой Excel (https://github.com/crealytics/spark-excel), чтобы записать вывод на одном лист с первенствуйте sheet.However, я неспособен написать вывод в различные листы (вкладки) , Можно ли предложить какие-либо альтернативы? Спасибо, Sai
Bharath
1

голосов
2

ответ
358

Просмотры

Binding.scala: Как вызвать побочные эффекты, когда значение обновляется?

У меня есть список географических координат в моем приложении, хранящимися в Варс [Координаты]. Сейчас я хотел, чтобы отобразить их на карте и автоматически обновлять карту, когда новые координаты будут добавлены или удалены из списка. Я использую библиотеку, которая обнажает API, чтобы добавлять и удалять маркеры на карте, поэтому я хотел бы, чтобы вызвать их, когда список обновляется, но я не могу найти какой-либо очевидный способ сделать это. Любые намеки о том, как достичь этого? Редактирование: Спасибо @ Ян Бо для ответа! Я в конечном итоге с чем-то вроде этого: Вэл координаты = Vars.empty [Координаты] Защиту mapMountPoint (Родитель: Элемент, координаты: BindingSeq [Координаты]) = новый MultiMountPoint [Координаты] (координаты) {... // метод переопределяет здесь, чтобы создать карта родитель} @dom Защита карты = {Вэл е = mapMountPoint (е, координата) .bind х} Это, кажется, работает, монтирование и размонтировать методы вызываются, когда DIV визуализируется или удаляется из DOM ... Но это на самом деле, как это должно быть сделано? Это выглядит немного странно, и я также получаю предупреждение компилятора, где я называю .bind: чистое выражение ничего не делает в позиции отчетности; многострочные выражения могут потребовать вмещающих скобки. В библиотеке монадического-HTML, есть довольно элегантный способ сделать это: crazyCanvasStuff (е)}> Существует также соответствие MHTML-onunmount атрибут для очистки.
Matthias Berndt
1

голосов
0

ответ
85

Просмотры

NoSuchMethod when trying to execute HelloWorld in Scala on Zeppelin with local JAR as dependency

У меня есть проблемы с исполнением местного .jar на Zeppelin. Я добавляю баночку зависимостей с помощью этого руководства, но когда я иду в блокнот и попытаться выполнить Println ( «Привет») Я получаю стек перечислены ниже: java.lang.NoSuchMethodError:. Scala.collection.immutable $ двоеточие $ colon.hd $ 1 () Ljava / языки / объекта; на scala.tools.nsc.settings.MutableSettings.loop $ 1 (MutableSettings.scala: 64) при scala.tools.nsc.settings.MutableSettings.processArguments (MutableSettings.scala: 91) в org.apache.zeppelin.spark.SparkInterpreter. открытый (SparkInterpreter.java:706) в org.apache.zeppelin.interpreter.LazyOpenInterpreter.open (LazyOpenInterpreter.java:70) в org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer $ InterpretJob.jobRun (RemoteInterpreterServer.java:491) на org.apache.zeppelin.scheduler.Job.run (Job.java:175) в org.apache.zeppelin.scheduler. FIFOScheduler $ 1.run (FIFOScheduler.java:139) в java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:511) в java.util.concurrent.FutureTask.run (FutureTask.java:266) в Java. util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 201 (ScheduledThreadPoolExecutor.java:180) при java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:293) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java : 1142) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) в java.lang.Thread.run (Thread.java:745) Когда нет никаких зависимостей в интерпретатором, все работает отлично. Я знаю, что может быть проблемы зависимостей Scala, но я пробовал с разными версиями Скале и это не поможет. Также util.Properties.
okocki
1

голосов
1

ответ
49

Просмотры

параллелизм в свече SQL, когда список таблиц должны быть обработаны

Использование Спарк 1.6.0, 5.7.0 CDH У меня есть файл CSV, который имеет список таблиц, подлежащих обработке, и я хочу, чтобы добиться параллельности в обработке. В настоящее время я использую собирать обрабатывать каждый, пытались использовать в будущем вариант в Скале и даже попытался это https://blog.knoldus.com/2015/10/21/demystifying-asynchronous-actions-in-spark/ вал AllTables = sc.textFile ( "HDFS: // ......."). allTables.collect () Еогеасп (таблица => {Вэл обработка = sqlContext.sql (s "выберите * от $ таблицы} {") обработку. saveAsParquetFile ( "HDFS: // .......")})
j pavan kumar
1

голосов
1

ответ
213

Просмотры

Создайте текстовый файл на Azure с помощью Scala

У меня есть следующий фрагмент кода, который лестницу будет писать текст в текстовый файл, сидя на месте. // PrintWriter импорт java.io._ вал Pw = новый PrintWriter (новый файл ( «ресурсы / Myfile.txt»)) pw.write ( «Test текст») pw.close Как я получить эту работу на лазурном хранения больших двоичных объектов ? Я пробовал: вал Pw = новый PrintWriter (новый файл ( "wasb: // [мое имя контейнера] @ [Мой счет хранения] .blob.core.windows.net / ресурсы / myfile.txt")) Но это Безразлично» т работы. Что я делаю неправильно? Кстати, ради этого примера, я держу его просто. На самом деле, я выводя более значимые данные. Благодаря Con
ConorS79

Просмотр дополнительных вопросов

Связанные вопросы