標題中的問題可能並不能反映我真正想要的東西......我會在這裏盡我所能。如何從Python中的十六進制(字節字符串)中讀取單個字符?
我有一個十六進制字符串的下面表示作爲字節串:
S = '\ X00 \ X00 \ X01B \ x90bM \ xe0 \ X00 \ X00 \ X00?'
我有一個hbase表,其中行鍵的格式爲's'。但是,當我經過的範圍內這種格式會產生一個錯誤:「UTF-8不能解碼字節......」
sparkconf = {「hbase.zookeeper.quorum」:「myHostIP」,「hbase.mapreduce .inputtable「:」myHbaseTable「,」hbase.mapreduce.scan.columns「:」c1:c2「,」hbase.mapreduce.scan.row.start「:startRow,」hbase.mapreduce.scan.row.stop「: endRow}
似乎startRow和endRow必須是字符串?
如果是這樣,有沒有辦法將s ='\ x00 \ x00 \ x01b?\ x90bM \ xe0 \ x00 \ x00 \ x00'轉換爲一個SAME字符串?
這樣,我的意思並不是轉換十六進制牛逼字符串,我的意思是,我需要一個字符串,如str_s = MAKESTRING(S)會導致str_s ='\ X00 \ X00 \ X01B?\ x90bM \ xe0 \ X00 \ X00 \ X00'其中str_s [0] = '\',str_s [1] = 'X',str_s [2] = '0' 等...
非常感謝的幫助,我是python,pyspark和hbase的新手。
你的字符串從哪裏來?你以某種方式生成它? – maij
是的,前4個字節是一個int,最後8個是一個double。所以,確切的問題是:它不清楚如何hbase_rdd = sc.newAPIHadoopRDD(「org.apache.hadoop.hbase.mapreduce.TableInputFormat」,「org.apache.hadoop.hbase.io.ImmutableBytesWritable」,「org.apache .hadoop.hbase.client.Result「,keyConverter = keyConv,valueConverter = valueConv,conf = sparkconf) 正在解釋開始和結束行。我已經解決了utf-8問題如下: s = u'\ x00 \ x00 \ x01b?\ x90bM \ xe0 \ x00 \ x00 \ x00' s = s.encode('utf-8') 但是我從範圍掃描獲得空集! 感謝您幫助 –
當我在掃描中使用與hbase shell相同格式的相同範圍(開始和結束)時,它可以工作,而不是newAPIHadoopRDD! –