을 변환하는 데 시간이 너무 오래 :스파크 파이썬 : sortBy는 ValueError를 일으키는 : 유니 코드 플로트() 문자 나는 RDD이처럼 보이는이
rdd.take(2)
(ID, 평균 등급)
[(u'1269', 433355525.39999998), (u'1524', 5693044.25)] ...
I 기능별로 정렬하려고합니다. sortBy()
sorted = rdd.sortBy(lambda x: x[1])
반환해야합니다. 정렬 된 ID 목록. 내가 대신 다음과 같은 오류를 받고 있어요 :
ValueError: Unicode float() literal too long to convert
at org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRDD.scala:166)
at org.apache.spark.api.python.PythonRunner$$anon$1.<init>(PythonRDD.scala:207)
at org.apache.spark.api.python.PythonRunner.compute(PythonRDD.scala:125)
at org.apache.spark.api.python.PythonRDD.compute(PythonRDD.scala:70)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:313)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:277)
at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
at org.apache.spark.scheduler.Task.run(Task.scala:89)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:227)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
... 1 more
나는 피곤 다시 유니 코드로 플로트 값을 변환 할, 뒤로 할 수 있습니다. 나는
은 아마 진수 해결책이 될 것이다 사용하지만 파이썬 2.6.6를 사용하고 등을 둥글게 시도하고 어쨌든 잔인한 날 것으로 보인다.[(u'1269', 433355525.0), (u'1524', 5693044.0)]
스파크 1.6.3.
어떻게 해결할 수 있습니까?
추가 된 간단한 코드 :
lines = sc.textFile("/user/ahouskova/movies/my.data") columns_data = lines.map(lambda line: line.split("\t")) ratings = columns_data.map(lambda c: (c[1], (c[2], 1.0))) movie_ratings_total_counts = ratings.reduceByKey(lambda m1, m2: (m1[0] + m2[0], m1[1] + m2[1])) avg_ratings = movie_ratings_total_counts.mapValues(lambda total: round(float(total[0])/total[1])) sorted_by_avg_rtg = avg_ratings.sortBy(lambda x: x[1])
둥글게
[(u'1269', '433355525.0'), (u'1524', '5693044.0')]
새로운 기반으로 문자열
[(u'1269', '433355525.400'), (u'1524', '5693044.250')]
안녕하세요. Ive는 플로팅을 계산하는 중에도 변환하려고했습니다. 전환지도 함수는 위에서 언급 한 것과 같은 오류를 보여줍니다. –
@la_femme_it -'map' 함수의 실패의 의미는,'map'하는 RDD가 하나 이상의 (하나 이상의) 튜플의 두 번째 요소에 잘못된 데이터를 가지고 있다는 것입니다. – Yaron
@la_femme_it 질문에 충분한 데이터가 없으므로 문제의 원인을 이해할 수 있습니다 (입력 데이터, 튜플의 두 번째 요소 계산, 즉 평균 또는 기타) – Yaron