2013-02-04 4 views
6

Sto tentando di utilizzare la funzione takeSample() in Spark ei parametri sono - dati, il numero di campioni da prelevare e il seme. Ma non voglio usare il seme. Voglio avere una risposta diversa ogni volta. Non sono in grado di capire come posso farlo. Ho provato a utilizzare System.nanoTime come valore di inizializzazione ma ha dato un errore poiché penso che il tipo di dati non corrispondesse. Esiste un'altra funzione simile a takeSample() che può essere utilizzata senza il seme? O ci sono altre implementazioni che posso usare con takeSample() in modo da ottenere un output diverso ogni volta.Funzione takeSample() in Spark

risposta

7

System.nanoTime è di tipo long, il seme previsto da takeSample è di tipo Int. Quindi, takeSample(..., System.nanoTime.toInt) dovrebbe funzionare.

+1

In scala '.toInt' deve essere preferito su' .intValue' –

+0

@ RégisJean-Gilles Grazie, corretto. –

1

System.nanoTime restituisce Long, mentre takeSample si aspetta un Int.
È possibile alimentare scala.util.Random.nextInt come valore di inizializzazione per la funzione takeSample.