Próbuję użyć funkcji takeSample()
w Spark, a parametry są - dane, liczba próbek do pobrania i nasiona. Ale nie chcę używać nasion. Za każdym razem chcę mieć inną odpowiedź. Nie jestem w stanie wymyślić, jak to zrobić. Próbowałem użyć System.nanoTime
jako wartości początkowej, ale spowodowało błąd, ponieważ myślę, że typ danych nie pasuje. Czy jest jakaś inna funkcja podobna do takeSample()
, która może być używana bez nasion? Czy istnieje inna implementacja, której mogę użyć z takeSample()
, aby za każdym razem uzyskać inny wynik.Funkcja takeSample() w Spark
6
A
Odpowiedz
7
System.nanoTime
jest typu long
, ziarno oczekiwane przez takeSample
jest typu Int
. Dlatego powinien działać takeSample(..., System.nanoTime.toInt)
.
1
System.nanoTime
zwraca Long, natomiast takeSample oczekuje wartości Int.
Możesz podać scala.util.Random.nextInt
jako wartość początkową do funkcji takeSample.
1
Od wersji 1.0.0 Sparka parametr seed
jest opcjonalny. Zobacz https://issues.apache.org/jira/browse/SPARK-1438.
W scala '.toInt' powinno być preferowane przez' .intValue' –
@ RégisJean-Gilles Dzięki, poprawione. –