我想用R编程语言处理Apache Parquet文件(在我的例子中,在Spark中生成).
是否有R读卡器?或者正在进行一项工作?
如果没有,那么到达那里最方便的方式是什么?注意:有Java和C++绑定:https://github.com/apache/parquet-mr
有关Typesafe控制台信息的所有链接(例如http://typesafe.com/platform/runtime/console)将被重定向到Typesafe Activator,这是一个项目教程/模板工具(不是监控工具).我在Typesafe网站上找不到任何有关Typesafe控制台的信息或链接,或者Typesafe Activator如何填写Typesafe控制台所执行的相同角色.
尝试使用sbt-atmos插件在使用Akka 2.3.x时从SBT 调用Typesafe控制台也会失败,Akka仅支持2.2.1(请参阅参考资料AtmosRun.scala).
Typesafe控制台发生了什么?它似乎神秘地消失了!
什么是初始化JavaFX运行时的正确方法,以便您可以使用并发工具进行单元测试(使用JUnit)控制器Platform.runLater(Runnable)?
Application.launch(...)从该@BeforeClass方法调用会导致死锁.如果Application.launch(...)未调用,则抛出以下错误:
java.lang.IllegalStateException: Toolkit not initialized
at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:121)
at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:116)
at javafx.application.Platform.runLater(Platform.java:52)
at javafx.concurrent.Task.runLater(Task.java:1042)
at javafx.concurrent.Task.updateMessage(Task.java:987)
at com.xyz.AudioSegmentExtractor.call(AudioSegmentExtractor.java:64)
at com.xyz.CompletionControllerTest.setUp(CompletionControllerTest.java:69)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Run Code Online (Sandbox Code Playgroud)
跟进:这是我根据@SergeyGrinev推荐使用的主题.
... // Inside test class
public static …Run Code Online (Sandbox Code Playgroud) TL; DR:GC正在吃我的活动绑定.
我在Java 7上使用JavaFX 2.2开发并成功部署了一个应用程序.
当我升级/转换到JavaFX 8.0(和Java 8)时,某些功能将"神秘地"停止工作 - 应用程序生命周期中期 - 没有异常或其他错误状态更改的迹象.例如; 按钮停止工作,自定义单元格渲染器停止应用,启用/禁用状态停止更新.
经过几个小时的挖掘,我想我已经将问题跟踪到了我所理解的JavaFX 8中的一些变化以及javafx.beans.WeakListener处理已发现的JavaFX 2.2中的内存泄漏的内部用法.基本上,似乎我正在创建的用于管理数据状态依赖性的绑定正在收集垃圾,尽管Node它们控制的s仍处于活动状态.
当我使用匿名类实例化绑定时,通常会出现问题.可以通过将绑定的引用存储为类成员来修复一些但不是所有问题,从而防止GC收集它.我甚至让整个控制器得到了GC'd,因为它们是通过FXML加载实例化的,并且从不直接引用(我现在总是在父节点的userData属性中填充对控制器的引用).
我的问题是:
令人沮丧的是,我似乎无法在Oracle文档中找到"不要使用匿名类创建绑定"或任何其他确保可靠使用绑定的指南.很多代码示例都使用匿名类绑定.我也无法找到有关如何将JavaFX 2.2应用程序正确更新为JavaFX 8的任何说明.
非常感谢开发非平凡 JavaFX应用程序的人提出的任何建议(我已经开发了3年的JavaFX 2.x应用程序,以及Swing应用程序超过15年,所以这不是一个n00b问题).
注意:我的问题类似于Clean JavaFX属性侦听器和绑定(内存泄漏),但我想明确地知道如何使用复杂绑定并确保它们不会在随机时间进行垃圾收集,而不需要使用带有污染的类对每个实例的引用.
我正试图从读取csv平面文件切换到spark上的avro文件.关注https://github.com/databricks/spark-avro 我使用:
import com.databricks.spark.avro._
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val df = sqlContext.read.avro("gs://logs.xyz.com/raw/2016/04/20/div1/div2/2016-04-20-08-28-35.UTC.blah-blah.avro")
Run Code Online (Sandbox Code Playgroud)
得到
java.lang.UnsupportedOperationException: This mix of union types is not supported (see README): ArrayBuffer(STRING)
Run Code Online (Sandbox Code Playgroud)
自述文件清楚地说明:
此库支持读取所有Avro类型,但复杂的联合类型除外.它使用以下从Avro类型到Spark SQL类型的映射:
当我尝试文本阅读相同的文件时,我可以看到架构
val df = sc.textFile("gs://logs.xyz.com/raw/2016/04/20/div1/div2/2016-04-20-08-28-35.UTC.blah-blah.avro")
df.take(2).foreach(println)
Run Code Online (Sandbox Code Playgroud)
{ "名称": "log_record", "类型": "记录", "字段":[{ "名称": "请求", "类型":{ "类型": "记录", "名称":"request_data " "字段":[{ "名称": "日期时间", "类型": "串"},{ "名称": "IP", "类型": "串"},{ "名称":" 主机" "类型": "串"},{ "名称": "URI", "类型": "串"},{ "名称": "REQUEST_URI", "类型": "串"},{" 名":" 引用者", "类型": "串"},{ "名称": "用户代理", "类型": "串"}]}} …
作为Swing的十年开发人员,我对JavaFX 2.0引入的功能感到非常兴奋,特别是丰富,流畅,高级的数据绑定工具.仅此设施值得学习新API的成本(自放弃FX脚本以来,这个成本要少得多).它将直接影响我的模型/视图同步代码的可读性和可维护性.
到目前为止,我在第一级和基本派生绑定方面取得了巨大成功,但我正在努力找出将一个值绑定到数据图中两个或更多个间接值的"JavaFX方式".
如下面的代码示例所示,我试图用来将javafx.beans.binding.Bindings.select()Label的文本值与ComboBox中当前所选项的一个包含属性同步.这段代码是我想要做的更复杂的一个简单例子,所以我理解用较低级别的绑定API做这件事并不难.我想知道是否可以使用更高级别的流畅API,以及该select(...)方法是否实际跟踪间接属性的更改(即,如果直接属性或所选子属性更改,则更新属性).
文档和示例select(...)很稀疏,所以我希望有这方面经验的人可以告诉我,我是否正在尝试按设计使用API,或者是否有另一种方法使用高级绑定API来做什么我想要.
这是演示代码.运行时,会有一个包含两个项目的ComboBox,然后是两个标签.第一个标签显示toString()所选项目的版本.第二个标签尝试显示所选项目的一个属性,但仅显示null.
import static javafx.beans.binding.Bindings.*;
import javafx.application.Application;
import javafx.beans.property.ReadOnlyStringProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.collections.FXCollections;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.control.Tooltip;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
/** Testing cascading binding change triggers. */
public class SandboxTest extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
VBox root = new VBox(8);
root.setStyle("-fx-padding: 8;"); …Run Code Online (Sandbox Code Playgroud) 我在CMake 2.8.1中使用NSIS包生成器来分发Qt应用程序.一切都工作正常......除了使用CPACK_CREATE_DESKTOP_LINKS创建应用程序的桌面链接.
我查看了CMake源代码(包括它自己的"bootstrap"windows安装定义),据我所知,我做的是同样的事情.
这是我CMakeLists.txt文件的相关部分.
set(CPACK_GENERATOR NSIS)
set(CPACK_NSIS_PACKAGE_NAME "${EWS_APP_NAME}")
set(CPACK_NSIS_DISPLAY_NAME "${EWS_APP_NAME}")
set(CPACK_NSIS_CONTACT "${EWS_EMAIL}")
set(CPACK_PACKAGE_EXECUTABLES "${EXE_TARGET_NAME}" "${EWS_APP_NAME}")
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CMAKE_PROJECT_NAME}-${EWS_VERSION}")
# this works
set(CPACK_NSIS_MENU_LINKS "${EWS_WEBSITE}" "Homepage for ${EWS_APP_NAME}")
# this doesn't
set(CPACK_CREATE_DESKTOP_LINKS "${EXE_TARGET_NAME}")
# Icon in the add/remove control panel. Must be an .exe file
set(CPACK_NSIS_INSTALLED_ICON_NAME bin\\\\${EXE_TARGET_NAME}.exe)
set(CPACK_NSIS_URL_INFO_ABOUT "${EWS_WEBSITE}")
set(CPACK_NSIS_HELP_LINK "${EWS_WEBSITE}")
Run Code Online (Sandbox Code Playgroud)
任何想法或调试技巧表示赞赏!
有没有人见过这个问题?启动scala REPL和
scala> :paste
// Entering paste mode (ctrl-D to finish)
val x = 5
Run Code Online (Sandbox Code Playgroud)
ctrl-D不会导致REPL完成粘贴模式.
我有一种情况,我想绑定BooleanProperty到一个ObservableList包裹在一个非空状态ObjectProperty.
这是我正在寻找的行为的基本概要:
ObjectProperty<ObservableList<String>> obp = new SimpleObjectProperty<ObservableList<String>>();
BooleanProperty hasStuff = new SimpleBooleanProperty();
hasStuff.bind(/* What goes here?? */);
// ObservableProperty has null value
assertFalse(hasStuff.getValue());
obp.set(FXCollections.<String>observableArrayList());
// ObservableProperty is no longer null, but the list has not contents.
assertFalse(hasStuff.getValue());
obp.get().add("Thing");
// List now has something in it, so hasStuff should be true
assertTrue(hasStuff.getValue());
obp.get().clear();
// List is now empty.
assertFalse(hasStuff.getValue());
Run Code Online (Sandbox Code Playgroud)
我想在类中使用构建器,Bindings而不是实现一系列自定义绑定.
该Bindings.select(...)方法理论上做了我想要的,除了没有Bindings.selectObservableCollection(...)并且从通用中转换返回值 select(...)并将其传递给Bindings.isEmpty(...)不起作用.也就是说,结果如下:
hasStuff.bind(Bindings.isEmpty((ObservableList<String>) Bindings.select(obp, "value")));
Run Code Online (Sandbox Code Playgroud)
导致 …
我发现在我的代码中反复弹出以下模式,我的直觉说必须有一些惯用的Scala方法来更好地表达这个(Monadic或其他):
val someCollection: Seq[Thing] = ...
val makeBlah: Seq[Thing] => Blah = ...
...
if (someCollection.nonEmpty) Some(makeBlah(someCollection)) else None
更具体地说,我正在寻找与你可以做的事情有关的事情Option[T]:
val someOption: Option[Thing] = ...
val makeBlah: Thing => Blah = ...
...
val result: Option[Blah] = someOption.map(makeBlah)
...但是基于一些谓词而不是Some/ None模式匹配的评估语义map.
虽然上面的示例使用了一个集合 - 首先对它执行测试,然后可选地执行操作 - 但我并不是要暗示集合特定的用例.你可以想象一个Boolean被解除或强迫进入某个monad 的案例:
val aThing: Thing = ...
val makeBlah: Thing => Blah = ...
val thingTest: Thing => Boolean ...
// theoretical
implicit def optionOnBoolean(b: Boolean): MonadOps[Option[Boolean]] …Run Code Online (Sandbox Code Playgroud) java ×4
javafx-2 ×3
scala ×3
apache-spark ×2
binding ×2
javafx ×2
akka ×1
cmake ×1
data-binding ×1
java-8 ×1
javafx-8 ×1
junit ×1
monads ×1
nsis ×1
observable ×1
parquet ×1
r ×1
sbt ×1
spark-avro ×1
sparkr ×1
sublimerepl ×1
sublimetext2 ×1
unit-testing ×1