2017-10-02 9 views
0

CSVをインポートして日付にデータをフィルタリングする単純なタスクがあります。私は文字列を日付に変換するだけで始まり、私はそれを遠くまでも得ることができません。他の人のコードサンプルを使用しましたが、失敗しています。私が以下を実行すると、NULLだけが得られます。日付はファイル内で次のようになります。8/29/2013 12:06ここでの究極の目標は、日付でフィルタリングすることです。あなたはそれを行う前に文字列を日付としてキャストする必要がありますか?私は、あなたも、あなたがそれを行う前に、日付などの文字列をキャストする必要がありますか...そうSparkでScalaを使用してCSVをインポートすると、日付がNULLとして表示される

package net.massstreet.hour10 

import org.apache.spark._ 
import org.apache.spark.SparkContext._ 
import org.apache.spark.sql._ 
import org.apache.log4j._ 
import java.text._ 
import org.apache.spark.sql.functions._ 


object TempTest { 



    def main(args: Array[String]) { 

    Logger.getLogger("org").setLevel(Level.ERROR) 

    // Use new SparkSession interface in Spark 2.0  
    val spark = SparkSession 
    .builder 
    .appName("BayAreaBikeAnalysis") 
    .master("local[*]") 
    .config("spark.sql.warehouse.dir", "file:///C:/temp") // Necessary to work around a Windows bug in Spark 2.0.0; omit if you're not on Windows. 
    .getOrCreate() 

    //Load files into data sets 
    import spark.implicits._ 
    val stations = spark.read.format("CSV").option("header","true").load("Data/station.csv") 
    stations.select(to_date($"installation_date")).show() 
    spark.stop() 
    } 



} 
+0

'その後、私は別の質問としてフィルタリングを扱いましょうto_date'のみ、特定のフォーマットを解析し、それ以外の場合は –

+0

NULLだと、いや、あなたは同じように簡単に日付[OK]を –

+0

のように文字列をフィルタリングすることができます。回答としてコメントを投稿すると、それをマークします。 –

答えて

0

を想定でしょうか?

いいえ。しかし、あなたがした場合は、自分自身8/29/2013 12:06を解析する必要があります。例えば

unix_timestamp($"installation_date"), "M/dd/yyyy hh:mm").cast("timestamp") 
関連する問題