小编Rah*_*hvi的帖子

转换spark数据帧中的日期模式

我有一个String数据类型的火花数据框中的列(日期为yyyy-MM-dd模式)我想以MM/dd/yyyy模式显示列值

我的数据是

val df = sc.parallelize(Array(
  ("steak", "1990-01-01", "2000-01-01", 150),
  ("steak", "2000-01-02", "2001-01-13", 180),
  ("fish",  "1990-01-01", "2001-01-01", 100)
)).toDF("name", "startDate", "endDate", "price")

df.show()

+-----+----------+----------+-----+
| name| startDate|   endDate|price|
+-----+----------+----------+-----+
|steak|1990-01-01|2000-01-01|  150|
|steak|2000-01-02|2001-01-13|  180|
| fish|1990-01-01|2001-01-01|  100|
+-----+----------+----------+-----+

root
 |-- name: string (nullable = true)
 |-- startDate: string (nullable = true)
 |-- endDate: string (nullable = true)
 |-- price: integer (nullable = false)
Run Code Online (Sandbox Code Playgroud)

我想以MM/dd/yyyy模式显示endDate.我能做的就是将列从String转换为DateType

val df2 = df.select($"endDate".cast(DateType).alias("endDate"))

df2.show()

+----------+
|   endDate|
+----------+
|2000-01-01|
|2001-01-13|
|2001-01-01|
+----------+

df2.printSchema()

root
 |-- endDate: …
Run Code Online (Sandbox Code Playgroud)

scala apache-spark spark-dataframe

4
推荐指数
1
解决办法
7470
查看次数

LisIterator 有 add() 但不会迭代新添加的元素

我使用 ListIterator 在列表中进行迭代,因为如果满足某些条件,我想在运行时添加一些元素。

但是添加到列表中的新元素永远不会包含在迭代器中

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

public class Example {
    public static void main(String[] s)
    {
        List<Integer> list = new ArrayList<Integer>();
        list.add(1);
        list.add(2);
        list.add(5);
        list.add(6);

        ListIterator<Integer> listIterator = list.listIterator();
        while(listIterator.hasNext())
        {
            int i = listIterator.next();
            System.out.println("List Element: " + i + " | List size: " + list.size());
            if(i==1)
            {
                //Adding '3' to list
                listIterator.add(3);
                System.out.println("Added Element: 3");
            }
            if(i==2)
            {
                //Adding '4' to list
                listIterator.add(4);
                System.out.println("Added Element: 4");
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

下面是输出

List Element: …
Run Code Online (Sandbox Code Playgroud)

java list listiterator

0
推荐指数
1
解决办法
670
查看次数

标签 统计

apache-spark ×1

java ×1

list ×1

listiterator ×1

scala ×1

spark-dataframe ×1