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
6
A
risposta
7
System.nanoTime
è di tipo long
, il seme previsto da takeSample
è di tipo Int
. Quindi, takeSample(..., System.nanoTime.toInt)
dovrebbe funzionare.
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.
1
A partire da Spark versione 1.0.0, il parametro seed
è facoltativo. Vedi https://issues.apache.org/jira/browse/SPARK-1438.
In scala '.toInt' deve essere preferito su' .intValue' –
@ RégisJean-Gilles Grazie, corretto. –