Spark 版本:1.6.1,我使用 pyspark API。
DataFrame:df,有两列。
我试过了:
1: df.write.format('csv').save("hdfs://path/bdt_sum_vol.csv")
2: df.write.save('hdfs://path/bdt_sum_vol.csv', format='csv', mode='append')
3: df.coalesce(1).write.format('com.databricks.spark.csv').options(header='true').save('hdfs://path/')
4: df.write.format('com.databricks.spark.csv').save('hdfs://path/df.csv')
(All above didn't work, Failed to find data source)
Run Code Online (Sandbox Code Playgroud)
或者:
def toCSVLine(data):
return ','.join(str(d) for d in data)
lines = df.rdd.map(toCSVLine)
lines.saveAsTextFile('hdfs://path/df.csv')
(Permission denied)
Run Code Online (Sandbox Code Playgroud)
问:
1、如何解决“找不到数据源”?
2,我用sudo在hdfs上制作字典“/path”,如果我把dataframe转为rdd,如何在hdfs上将rdd写入csv?
非常感谢!
我想继续刷新直到10:05,10:05之后我得到了tplus0_dt并停止处理invalidaterLater()。
10:00之前,tplus0_dt不存在,所以我需要不断刷新直到10:05。10:05之后,不需要重新刷新,当tplus0_dt变得非常大时,invalidaterLater()会影响table1的显示,屏幕和绘图每隔1秒就会变成灰色,所以看起来更新时页面已经死了发生。
那么我该如何停止处理 invalidateLater() 并在 10:05 之后继续显示数据呢?感谢帮助!我的示例代码如下。
require(shiny)
require(data.table)
app <- shinyApp(
server = function(input, output, session){
get_tplus0_data <- reactive({
time <- substr(as.character(Sys.time()), 12, 16)
invalidateLater(1000)
if(time >= "10:05"){
# tplus0_dt<-data.table(read.csv("/data/df_highest_after_signal.csv",header = T, sep = ",", stringsAsFactors = F))
tplus0_dt<- data.table(a = c(1, 2, 3, 4), b = c(3, 4, 5, 8))
return(tplus0_dt)
}
})
output$table1 <- renderTable({get_tplus0_data()})
},
ui = fluidPage( tableOutput("table1") )
)
runApp(app)
Run Code Online (Sandbox Code Playgroud) 我想创建一个新的 colume 来表示哪个日期在同一周。
data.table DATE_SET 包含日期信息,例如:
DATA_SET<- data.table(transday = seq(from = (Sys.Date()-64), to = Sys.Date(), by = 1))
Run Code Online (Sandbox Code Playgroud)
例如,'2017-03-01'和'2017-03-02'在同一周,'2017-03-01'和'2017-03-08'都是星期三,但它们不在同一周.
如果“2016-01-01”是2016年的第一周,“2017-01-01”是2017年的第一周,则值为1,但它们不在同一周。所以我想要独特的价值来指定“同一周”。