首页 > 解决方案 > 在数据框 spark 1.6 java 中将字符串转换为日期或整数

问题描述

如何在数据框 spark 1.6 中将字符串转换为日期或整数。我想将我的数据分组为 1/10/100 年,dataFrame 有列“dt”-java 示例的字符串编码:

在此处输入图像描述

我怎样才能做到这一点?

标签: javaapache-sparkdataframecastinggroup-by

解决方案


DataFrame dataFrame = sqlContext.read()
            .format("com.databricks.spark.csv")
            .option("inferSchema", "true")
            .option("header", "true")
            .load(filePath.getAbsolutePath());


    DataFrame withDate = dataFrame.withColumn("date",col("dt").cast("date"));

    withDate.withColumn(
            "year",
            year(col("date"))
    ).withColumn(
            "month",
            month(col("date"))
    ).withColumn(
            "day",
            dayofmonth(col("date"))
    ).show();

或者

DataFrame inputFrame = sqlContext.read()
            .format("com.databricks.spark.csv")
            .option("inferSchema", "true")
            .option("header", "true")
            .load(filePath.getAbsolutePath());


    DataFrame with_data_frame = inputFrame
            .withColumn(
                    "date", col("dt").cast("date"))
            .withColumn(
                    "year",year(col("date"))
            );
    with_data_frame.show();

完美的)


推荐阅读