有没有简单的方法将Java 8的LocalDateTime转换为Joda的LocalDateTime?
其中一种方法是将其转换为String,然后从该String创建Joda的LocalDateTime.
我有一个执行程序负责消耗来自ArrayBlockingQueue的消息.
new ThreadPoolExecutor(1, 1, 0L,
TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<>(1),
r -> {
return new Thread(r, "Request-Queue-Drainer");
});
Run Code Online (Sandbox Code Playgroud)
Request-Queue-Drainer线程处于WAITING状态(虽然任务正在提交给该线程).以下是线程转储.
Name: Request-Queue-Drainer
State: WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5b4757a2
Total blocked: 0 Total waited: 8
Stack trace:
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)
线程处于等待状态的原因是什么?
以下代码从 parquet 文件中读取 Spark DataFrame 并写入另一个 parquet 文件。将 DataFrame 写入新 Parquet 文件后,ArrayType DataType 中的 Nullable 字段发生更改。
代码:
SparkConf sparkConf = new SparkConf();
String master = "local[2]";
sparkConf.setMaster(master);
sparkConf.setAppName("Local Spark Test");
JavaSparkContext sparkContext = new JavaSparkContext(new SparkContext(sparkConf));
SQLContext sqc = new SQLContext(sparkContext);
DataFrame dataFrame = sqc.read().parquet("src/test/resources/users.parquet");
StructField[] fields = dataFrame.schema().fields();
System.out.println(fields[2].dataType());
dataFrame.write().mode(SaveMode.Overwrite).parquet("src/test/resources/users1.parquet");
DataFrame dataFrame1 = sqc.read().parquet("src/test/resources/users1.parquet");
StructField [] fields1 = dataFrame1.schema().fields();
System.out.println(fields1[2].dataType());
Run Code Online (Sandbox Code Playgroud)
输出:
ArrayType(IntegerType,false)
ArrayType(IntegerType,true)
Run Code Online (Sandbox Code Playgroud)
Spark 版本为:1.6.2
java ×2
apache-spark ×1
dataframe ×1
datetime ×1
java-time ×1
jodatime ×1
thread-dump ×1
threadpool ×1