【发布时间】:2015-07-09 06:53:55
【问题描述】:
我正在尝试加载包含两个时间戳列的制表符分隔文件并生成一个计算列,该列是其中一个列与当前时间戳之间的差异(以天为单位)。我在 RDD 上应用了 registerTempTable() 方法将其转换为 SchemaRDD。之后我几乎碰壁了,因为所有后续操作都依赖于这个 datediff 计算字段。
这是我到目前为止所做的。感谢您的帮助!
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
val conf = new SparkConf().setMaster("local[2]").setAppName("CookieSummary")
val sc = new SparkContext(conf)
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext.createSchemaRDD
case class CookieDates(CLPartnerSyncCreateDT: String, CookieSyncRequestDT: String)
val cookies = sc.textFile("/Users/shubhro/Documents/dataFiles/clean/worker1.01012015.1420081201_sub.tsv").map(_.split("\t")).map(p => CookieDates(p(0), p(1)))
cookies.registerTempTable("cookies")
val allCookies = sqlContext.sql("SELECT CAST(CLPartnerSyncCreateDT AS TIMESTAMP),CAST(CookieSyncRequestDT AS TIMESTAMP) FROM cookies")
allCookies.collect().foreach(println)
【问题讨论】:
标签: scala apache-spark