2017-02-10 11 views
2

поля метки времени теряют точность при запросе той же таблицы с использованием Hive MetastoreИскрового SQL.Отметка поля потеря точности при запросе с помощью искрового-SQL

Мое описание таблица выглядит следующим образом:

col_name data_type comment 
id   bigint null 
name  string null 
joined_time timestamp null 

Использование улей QL, я получаю joined_time значения в точности миллисекунды. результаты Hive QL:

select * from employees; 

1 foo 2016-07-04 02:12:10.0 
2 bar 2016-07-04 02:12:10.0 

При использовании spark-sql, я теряю точность, UPTO минут. например:

val result = sqlContext.sql("select * from employees") 
result.show() 

1 foo 2016-07-04 02:12:... 
2 bar 2016-07-04 02:12:... 
+0

Это не теряя точности. Я только что обрезал дисплей. вы можете отобразить его с result.show (false) – eliasah

+0

@eliasah нет метода show с логическим аргументом – narush

+0

да есть один – eliasah

ответ

3

Не теряется точность. Он просто урезал отображение.

С Спарк 1,6, вы можете отобразить его с result.show(false)

http://spark.apache.org/docs/latest/api/scala/#org.apache.spark.sql.Dataset

val df = Seq((1,2),(2,4)).toDF("x","y") 
df.show(false) 
// +---+---+ 
// |x |y | 
// +---+---+ 
// |1 |2 | 
// |2 |4 | 
// +---+---+ 

Теперь с временными метками:

sqlContext.sql("select current_timestamp()").show 
// +--------------------+ 
// |     _c0| 
// +--------------------+ 
// |2017-02-10 14:40:...| 
// +--------------------+ 

sqlContext.sql("select current_timestamp()").show(false) 
// +-----------------------+ 
// |_c0     | 
// +-----------------------+ 
// |2017-02-10 14:40:14.038| 
// +-----------------------+