SparkR: отключить научную нотацию при записи .json - PullRequest
0 голосов
/ 17 мая 2018

Мне нужно использовать SparkR для какой-то части проекта, обычно я использую scala.Я записываю файл, используя следующий код

# Let's set the scipen
options(scipen=999)  
# create a spark dataframe and write out
sdf <- SparkR::as.DataFrame(df)   
SparkR::head(sdf) # all looks good
SparkR::write.json(sdf, path=somePath, mode="append") # does not look good

Однако, когда я просматриваю записанный вывод, одна из моих переменных, в данном случае метка времени, записывается с использованием научной нотации, например, 1.4262.E12.Когда я предпочел бы иметь это долго, например, 1426256000000. Я не могу по какой-то причине понять, почему write.json записывает файл таким образом.Перед тем, как записать файл, я просматриваю свой фрейм с искровыми данными и вижу записанную метку времени.Может кто-нибудь помочь / посоветовать обойти эту проблему?

Вот пример схемы, должен быть сохранен таким образом:

root
 |-- price: integer (nullable = true)
 |-- timestamp: double (nullable = true)

1 Ответ

0 голосов
/ 17 мая 2018

Спасибо @nate, это решило мою проблему и работает со Схемой, которую я должен использовать в любом случае:

sdf$timestamp <- SparkR::cast(sdf$timestamp, "long")
...