UnicodeEncodeError during loading movies

[Copied from internal discussion]
While I am trying to load movies.data, I am getting the following error:

UnicodeEncodeError: 'ascii' codec can't encode character u'\ufffd' in position 3: ordinal not in range(128)
at org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRDD.scala:193)
at org.apache.spark.api.python.PythonRunner$$anon$1.<init>(PythonRDD.scala:234)
at org.apache.spark.api.python.PythonRunner.compute(PythonRDD.scala:152)
at org.apache.spark.api.python.PythonRDD.compute(PythonRDD.scala:63)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)
at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
at org.apache.spark.scheduler.Task.run(Task.scala:99)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:322)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
... 1 more

Here is my code:

from pyspark.sql import Row
mlines = spark.read.text("/data/ml-1m/movies.dat").rdd
mparts = mlines.map(lambda row: row.value.split("::"))

moviesRDD = mparts.map(lambda m: Row(movieId=int(m[0]), title=str(m[1]),
                                     genres=str(m[2])))
moviesRDD.count()

Please try this:

moviesRDD = mparts.map(lambda m: Row(movieId=int(m[0]), title=m[1].encode(‘utf-8’), genres=m[2].encode(‘utf-8’)))

Instead of:

moviesRDD = mparts.map(lambda m: Row(movieId=int(m[0]), title=str(m[1]), genres=str(m[2])))